//计算各位数字
ten_thousand=num/10000;
thousand=(int)(num-ten_thousand*10000)/1000;
hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;
ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;
indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10); cout<<\ switch(place) {case
5:cout< cout< 4:cout< cout< 3:cout< case 2:cout< case 1:cout< cout<<\ cout< return 0; } 3.13题 #include { long i; //i为利润 float bonus,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<<\ cin>>i; if (i<=100000) bonus=i*0.1; //利润在10万元以内按10%提成奖金 else if (i<=200000) bonus=bon1+(i-100000)*0.075; //利润在10万元至20万时的奖金 else if (i<=400000) bonus=bon2+(i-200000)*0.05; 利润在20万元至40万时的奖金 else if (i<=600000) bonus=bon4+(i-400000)*0.03; 利润在40万元至60万时的奖金 else if (i<=1000000) bonus=bon6+(i-600000)*0.015; 利润在60万元至100万时的奖金 else bonus=bon10+(i-1000000)*0.01; 利润在100万元以上时的奖金 cout<<\ // // // // 6 / 75 return 0; } 3.13题另一解 #include float bonus,bon1,bon2,bon4,bon6,bon10; int c; 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<<\ 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: case5: 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<<\ return 0; } 3.14题 #include cout<<\ cin>>a>>b>>c>>d; cout<<\b=\c=\ 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<<\ cout< 3.15题 #include {int p,r,n,m,temp; cout<<\enter two positive integer numbers n,m:\ cin>>n>>m; if (n m=temp; //把大数放在n中, 小数放在m中 } p=n*m; //先将n和m的乘积保存在p中, 以便求最小公倍数时用 while (m!=0) //求n和m的最大公约数 {r=n%m; n=m; m=r; } cout<<\ cout<<\ // p是 7 / 75 原来两个整数的乘积 return 0; } 3.16题 #include int letters=0,space=0,digit=0,other=0; cout<<\ while((c=getchar())!='\\n') {if (c>='a' && c<='z'||c>='A' && c<='Z') letters++; else if (c==' ') space++; else if (c>='0' && c<='9') digit++; else other++; } cout<<\ space:\ other:\ return 0; } 3.17题 #include {int a,n,i=1,sn=0,tn=0; cout<<\ cin>>a>>n; while (i<=n) {tn=tn+a; //赋值后的tn为i个a组成数的值 sn=sn+tn; //赋值后的sn为多项式前i项之和 a=a*10; ++i; } cout<<\ return 0; } 3.18题 #include for (n=1;n<=20;n++) { t=t*n; // 求n! s=s+t; // 将各项累加 } cout<<\ return 0; } 3.19题 #include cout<<\ for (n=100;n<1000;n++) {i=n/100; j=n/10-i*10; k=n; if (n == i*i*i + j*j*j + k*k*k) cout< cout< #include {const int m=1000; // 定义寻找范围 int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10; int i,a,n,s; for (a=2;a<=m;a++) // a是2~1000之间的整数,检查它是否为完数 {n=0; // n用来累计 8 / 75 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 case 5: k5=i; break; // 找出的笫5个因子赋给k5 case 6: k6=i; break; // 找出的笫6个因子赋给k6 case 7: k7=i; break; // 找出的笫7个因子赋给k7 case 8: k8=i; break; // 找出的笫8个因子赋给k8 case 9: k9=i; break; // 找出的笫9个因子赋给k9 case 10: k10=i; break; // 找出的笫10个因子赋给k10 } } if (s==0) // s=0表示全部因子都已找到了 {cout< if (n>1) cout< if (n>2) cout<<\// n>2表示至少有3个因子,故应再输出一个因子 if (n>3) cout<<\// n>3表示至少有4个因子,故应再输出一个因子 if (n>4) cout<<\ // 以下类似 if (n>5) cout<<\ if (n>6) cout<<\ if (n>7) cout<<\ if (n>8) cout<<\ if (n>9) cout<<\ cout< return 0; } 3.20题另一解 #include for (m=2;m<1000;m++) {s=0; for (i=1;i if ((m%i)==0) s=s+i; if(s==m) {cout< if (m%i==0) cout< return 0; } 3.20题另一解 9 / 75 #include for (a=2;a<=1000;a++) {n=0; s=a; for (i=1;i k[n]=i; // 将找到的因子赋给k[1]┅k[10] } if (s==0)