ﻩ cout<<"reverseorder:
";
ﻩcout<
break;
}
return0;
}ﻩ
3.13题
#include<iostream>
usingnamespacestd;
intmain()
{longi; //i为利润
floatbonus,bon1,bon2,bon4,bon6,bon10;
bon1=100000*0.1; //利润为10万元时的奖金
bon2=bon1+100000*0.075; //利润为20万元时的奖金
bon4=bon2+100000*0.05; //利润为40万元时的奖金
bon6=bon4+100000*0.03; //利润为60万元时的奖金
bon10=bon6+400000*0.015; //利润为100万元时的奖金
cout<<"enteri:
";
cin>>i;
if(i<=100000)
bonus=i*0.1; //利润在10万元以内按10%提成奖金
else if(i<=200000)
bonus=bon1+(i-100000)*0.075; //利润在10万元至20万时的奖金
elseif (i<=400000)
bonus=bon2+(i-200000)*0.05; //利润在20万元至40万时的奖金
elseif(i<=600000)
bonus=bon4+(i-400000)*0.03; //利润在40万元至60万时的奖金
elseif(i<=1000000)
bonus=bon6+(i-600000)*0.015;//利润在60万元至100万时的奖金
else
bonus=bon10+(i-1000000)*0.01; //利润在100万元以上时的奖金
cout<<"bonus="<
return0;
}
3.13题另一解
#include
using namespacestd;
intmain()
{longi;
floatbonus,bon1,bon2,bon4,bon6,bon10;
intc;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
cout<<"enteri:
";
cin>>i;
c=i/100000;
if(c>10)c=10;
switch(c)
{case 0:
bonus=i*0.1;break;
case 1:
bonus=bon1+(i-100000)*0.075;break;
case 2:
case3:
bonus=bon2+(i-200000)*0.05;break;
case 4:
case 5:
bonus=bon4+(i-400000)*0.03;break;
case6:
case7:
case 8:
case 9:
bonus=bon6+(i-600000)*0.015;break;
case10:
bonus=bon10+(i-1000000)*0.01;
}
cout<<"bonus="<
return0;
}
3.14题
#include<iostream>
usingnamespacestd;
intmain ()
{intt,a,b,c,d;
cout<<"enterfournumbers:
";
cin>>a>>b>>c>>d;
cout<<"a="<<a<<",b="<<b<<", c="<<c<<",d="<<d<if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c; c=t;}
if(a>d)
{t=a; a=d; d=t;}
if(b>c)
{t=b;b=c; c=t;}
if (b>d)
{t=b;b=d; d=t;}
if(c>d)
{t=c;c=d;d=t;}
cout<<"thesortedsequence:
"<<endl;
cout<<a<<","<
return0;
}
3.15题
#include<iostream>
usingnamespacestd;
intmain()
{int p,r,n,m,temp;
cout<<"pleaseentertwopositiveintegernumbersn,m:
";
cin>>n>>m;
if (n {temp=n;
n=m;
m=temp; //把大数放在n中,小数放在m中
}
p=n*m; //先将n和m的乘积保存在p中,以便求最小公倍数时用
while(m!
=0) //求n和m的最大公约数
{r=n%m;
n=m;
m=r;
}
cout<<"HCF="< cout<<"LCD="<<p/n<return 0;
}
3.16题
#include
using namespacestd;
intmain()
{char c;
intletters=0,space=0,digit=0,other=0;
cout<<"enterone line:
:
"< while((c=getchar())!
='\n')
{if(c>='a'&&c<='z'||c>='A'&& c<='Z')
letters++;
elseif (c==' ')
space++;
else if(c>='0'&& c<='9')
digit++;
else
ﻩ other++;
}
cout<<"letter:
"<<letters<<",space:
"<<space<<", digit:
"<<digit<<",
other:
"<<other<<endl;
return 0;
}
3.17题
#include <iostream>
usingnamespacestd;
intmain()
{inta,n,i=1,sn=0,tn=0;
cout<<"a,n=:
";
cin>>a>>n;
while (i<=n)
{tn=tn+a; //赋值后的tn为i个a组成数的值
sn=sn+tn; //赋值后的sn为多项式前i项之和
a=a*10;
++i;
}
cout<<"a+aa+aaa+...="<return0;
}
3.18题
#include
usingnamespacestd;
intmain()
{floats=0,t=1;
intn;
for(n=1;n<=20;n++)
{
t=t*n; //求n!
s=s+t;//将各项累加
}
cout<<"1!
+2!
+...+20!
="<
return 0;
}
3.19题
#include
usingnamespace std;
int main()
{inti,j,k,n;
cout<<"narcissus numbersare:
"< for (n=100;n<1000;n++)
{i=n/100;
j=n/10-i*10;
k=n%10;
if(n==i*i*i+j*j*j+ k*k*k)
cout<<n<<"";
}
cout<return0;
}
3.20题
#include <iostream>
usingnamespacestd;
intmain()
{constintm=1000;// 定义寻找范围
intk1,k2,k3,k4,k5,k6,k7,k8,k9,k10;
inti,a,n,s;
for(a=2;a<=m;a++) // a是2~1000之间的整数,检查它是否为完数
{n=0; // n用来累计a的因子的个数
s=a; //s用来存放尚未求出的因子之和,开始时等于a
for (i=1;i if(a%i==0) //如果i是a的因子
ﻩ{n++; //n加1,表示新找到一个因子
ﻩs=s-i; //s减去已找到的因子,s的新值是尚未求出的因子
之和
ﻩ switch(n) //将找到的因子赋给k1,...,k10
ﻩ{case 1:
ﻩ k1=i;break;//找出的笫1个因子赋给k1
case 2:
ﻩ k2=i; break;// 找出的笫2个因子赋给k2
ﻩ case 3:
k3=i; break; //找出的笫3个因子赋给k3
case 4:
ﻩ k4=i; break;//找出的笫4个因子赋给k4
case5:
k5=i; break;//找出的笫5个因子赋给k5
case6:
k6=i; break;//找出的笫6个因子赋给k6
ﻩ case 7:
k7=i; break; //找出的笫7个因子赋给k7
case8:
k8=i;break;//找出的笫8个因子赋给k8
ﻩcase9:
k9=i; break; //找出的笫9个因子赋给k9
case10:
k10=i; break; //找出的笫10个因子赋给k10
ﻩ}
}
if(s==0) //s=0表示全部因子都已找到了
{cout<<a<<"isa完数"<ﻩ cout<<"itsfactorsare:
";
if(n>1)cout< if(n>2)cout<<","<2表示至少有3个因子,故应再输出一个因子
if(n>3)cout<<","<3表示至少有4个因子,故应再输出一个因子
if(n>4) cout<<","< if(n>5) cout<<","<<k6;
if(n>6)cout<<","<<k7;
if(n>7)cout<<","<<k8;
if (n>8)cout<<","< if (n>9)ﻩcout<<","<<k10;
cout<<endl<<endl;
}
}
return0;
}
usingname
展开阅读全文
相关搜索