作业3
/*
/输入一个不多于5位的正整数,要求第一行求它是几位数 第二行分别输出每一位数字(有间隔) 第三行逆序输出数字321变123(无间隔)
#include<iostream>
using namespace std;
int main()
{
int a;
cin >> a;
if (a >= 0 && a < 10)
cout << '1' << "\n" << a << "\n" << a << endl;
if (a >= 10 && a < 100)
cout << '2' << "\n" << a / 10 << ' ' << a % 10 << "\n" << a % 10 << a / 10 << endl;
if (a >= 100 && a < 1000)
cout << '3' << "\n" << a / 100 << ' ' << a % 100 / 10 << ' ' << a % 100 % 10 << "\n" << a % 100 % 10 << a % 100 / 10 << a / 100 << endl;
if (a >= 1000 && a < 10000)
cout << '4' << "\n" << a / 1000 << ' ' << a % 1000 / 100 << ' ' << a % 1000 % 100 / 10 << ' ' << a % 1000 % 1000 % 10 << "\n" << a % 1000 % 1000 % 10 << a % 1000 % 100 / 10 << a % 1000 / 100 << a / 1000 << endl;
if (a >= 10000 && a < 100000)
cout << '5' << "\n" << a / 10000 << ' ' << a % 10000 / 1000 << ' ' << a % 10000 % 1000 / 100 << ' ' << a % 10000 % 1000 % 100 / 10 << ' ' << a % 10000 % 1000 % 100 % 10 << "\n" << a % 10000 % 1000 % 100 % 10 << a % 10000 % 1000 % 100 / 10 << a % 10000 % 1000 / 100 << a % 10000 / 1000 << a / 10000;
return 0;
}
*/
/*
//另一种
#include<iostream>
using namespace std;
int main()
{
int a, b, c, d, e, n;
cin >> n;
if (n > 9999)cout << "5" << endl;
else if (n > 999)cout << "4" << endl;
else if (n > 99)cout << "3" << endl;
else if (n > 9)cout << "2" << endl;
else cout << "1" << endl;
a = n % 10000 % 1000 % 100 % 10;
b = n % 10000 % 1000 % 100 / 10;
c = n % 10000 % 1000 / 100;
d = n % 10000 / 1000;
e = n / 10000;
if (e != 0)
{
cout << e << " " << d << " " << c << " " << b << " " << a << endl;
cout << a << b << c << d << e;
}
else if (d != 0)
{
cout << d << " " << c << " " << b << " " << a << endl;
cout << a << b << c << d;
}
else if (c != 0)
{
cout << c << " " << b << " " << a << endl;
cout << a << b << c;
}
else if (b != 0)
{
cout << b << " " << a << endl;
cout << a << b;
}
else
{
cout << a << endl;
cout << a;
}
return 0;
}
*/
/*错误写法 因为输入任何整数都是归于a
#include<iostream>
using namespace std;
int main()
{
int a, b, c, d, e;
if (cin>>a)
cout << '1' << "\n" << a << "\n" << a << endl;
if (cin>>a>>b)
cout << '2' << "\n" << a << ' ' << b << "\n" << b << a << endl;
if (cin>>a>>b>>c)
cout << '3' << "\n" << a << ' ' << b << ' ' << c << "\n" << c << b << a << endl;
if (cin>>a>>b>>c>>d)
cout << '4' << "\n" << a << ' ' << b << ' ' << c << ' ' << d << "\n" << d << c << b << a << endl;
if (cin>>a>>b>>c>>d>>e)
cout << '5' << "\n" << a << ' ' << b << ' ' << c << ' ' << d << ' ' << e << "\n" << e << d << c << b << a << endl;
return 0;
}
*/
/*错误写法 这个必须输入五个整数,与题意不符
#include<iostream>
using namespace std;
int main()
{
int a, b, c, d, e;
cin >> a >> b >> c >> d >> e;
if (a > 0)
cout << '1' << "\n"<<a<<"\n" << a << endl;
if (b >= 0)
cout << '2' << "\n" << a <<' '<< b << "\n" << b << a << endl;
if (c >= 0)
cout << '3' << "\n" << a <<' '<< b << ' '<< c << "\n" << c << b << a << endl;
if (d >= 0)
cout << '4' << "\n" << a <<' '<< b << ' '<< c <<' '<< d << "\n" << d << c << b << a << endl;
if (e >= 0)
cout << '5' << "\n" << a <<' '<< b << ' '<< c <<' '<< d <<' '<< e << "\n" << e << d << c << b << a << endl;
return 0;
}
*/
/*
//奖金l由利润i提成
//i<=100000部分提成10%
//100000<i≤200000提成7.5%
//200000<i≤400000部分提成5%
//400000<i≤600000部分提成3%
//600000<i≤1000000部分提成1.5%
//i>1000000部分提成1%
//输入利润i,求应发奖金总数
#include<iostream>
using namespace std;
int main()
{
double i, l;
cin >> i;
switch (int(i / 100000))
{
case 0:l = i * 0.1; break;
case 1:l = 100000 * 0.1 + (i - 100000) * 0.075; break;
case 2:
case 3:l = 100000 * 0.1 + 100000 * 0.075 + (i - 200000) * 0.05; break;
case 4:
case 5:l = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (i - 400000) * 0.03; break;
case 6:
case 7:
case 8:
case 9:l = 100000 * 0.1 + 100000 * 0.075 + 0.05 * 200000 + 200000 * 0.03 + (i - 600000) * 0.015; break;
default:l = 100000 * 0.1 + 100000 * 0.075 + 0.05 * 200000 + 200000 * 0.03 + 400000 * 0.015 + (i - 1000000) * 0.01; break;
}
cout << l << endl;
return 0;
}
*/
/*
//第二种
#include <iostream>
using namespace std;
int main()
{
int i;
double bonus,bon1,bon2,bon4,bon6,bon10;
int branch;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
cin>>i;
branch=i/100000;
if (branch>10) branch=10;
switch(branch)
{ case 0:bonus=i*0.1;break;
case 1:bonus=bon1+(i-100000)*0.075;break;
case 2:
case 3: bonus=bon2+(i-200000)*0.05;break;
case 4:
case 5: bonus=bon4+(i-400000)*0.03;break;
case 6:
case 7:
case 8:
case 9: bonus=bon6+(i-600000)*0.015;break;
case 10: bonus=bon10+(i-1000000)*0.01;
}
cout<<bonus<<endl;
return 0;
}
*/
/*
//打印出所有"水仙花数","水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153,因为153=13+53+33
//需要使用循环实现,对于一个三位数,首先提取出每一位数字,再计算各位数字的立方和,使用分支判断是否与该数本身相等
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int a, b, c, d;
for (a = 100; a < 1000; a++)
{
b = a / 100;
c = a / 10 % 10;
d = a % 100 % 10;
if (pow(b, 3) + pow(c, 3) + pow(d, 3) == a)
{
cout << a << endl;
}
}
return 0;
}
*/

浙公网安备 33010602011771号