C++编程练习题及答案.docx
《C++编程练习题及答案.docx》由会员分享,可在线阅读,更多相关《C++编程练习题及答案.docx(39页珍藏版)》请在冰豆网上搜索。
C++编程练习题及答案
一、简单问题:
1.编程求下列式子的值,
y=1-1/2+1/3-1/4+…+1/99-1/100
并将结果输出,格式为:
1-1/2+1/3-1/4+…+1/99-1/100=表达式的值
publicclassPorg{
publicstaticvoidmain(String[]args){
doublesum=0;
for(doublei=1;i<=100;i++)
{
sum=sum+Math.pow(-1,i-1)*(1/i);
}
System.out.print("1-1/2+1/3-1/4+…+1/99-1/100="+sum);
2.请编程实现:
由键盘输入的任意一组字符,统计其中大写字母的个数m和小写字母的个数n,并输出m、n中的较大者。
importjava.util.Scanner;
publicclassProg2{
intm=0,n=0;
Scannercin=newScanner(System.in);
Stringstr=cin.nextLine();
for(inti=0;i{if(str.charAt(i)>'A'&&str.charAt(i)<='Z')m++;elsen++;}if(m>n){System.out.println(m);}elseSystem.out.println(n);}}3.编程,求全部水仙花数。所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。如:153=13+53+33。publicclassProg3{publicstaticvoidmain(String[]args){inta,b,c;for(a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=0;c<=9;c++){if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)System.out.println(a*100+b*10+c);}}}}4.请编制程序判断输入的正整数是否既是5又是7的整倍数。若是,则输出yes;否则输出no。importjava.util.Scanner;publicclassProg4{publicstaticvoidmain(String[]args){Scannercin=newScanner(System.in);inti=cin.nextInt();if(i%5==0&&i%7==0)System.out.print("yes");elseSystem.out.print("no");}}5.请编程实现:对于给定的一个百分制成绩,输出相应的五分制成绩。设:90分以上为‘A’,80—89分为‘B’,70—79分为‘C’,60—69分为‘D’,60分以下为‘E’。importjava.util.Scanner;publicclassProg5{publicstaticvoidmain(String[]args){Scannercin=newScanner(System.in);intm=cin.nextInt();if(m>=60&&m<=69)System.out.print("D");elseif(m>=70&&m<=79)System.out.print("C");elseif(m>=80&&m<=89)System.out.print("B");elseif(m>=90)System.out.print("A");elseSystem.out.print("E");}}6.输入一行字符,将其中的字母变成其后续的第3个字母,输出。例:a→d,x→a;y→b;编程实现。importjava.util.Scanner;publicclassProg6{publicstaticvoidmain(String[]args){char[]zimu=newchar[]{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','a','b','c'};Scannercin=newScanner(System.in);Stringstr=cin.nextLine();for(intj=0;j{for(inti=0;i<29;i++){if(str.charAt(j)==zimu[i]){System.out.println(zimu[i+3]);break;}}}7.编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词.例如:1转换成Monday,7转换成Sunday.importjava.util.Scanner;publicclassProg7{publicstaticvoidmain(String[]args){System.out.print("请输入任意一个1~7之间的整数\n");Scannercin=newScanner(System.in);intm=cin.nextInt();if(m==1)System.out.print("Monday");elseif(m==2)System.out.print("Tuesday");elseif(m==3)System.out.print("Wensday");elseif(m==4)System.out.print("Thuesday");elseif(m==5)System.out.print("Friday");elseif(m==6)System.out.print("Saturday");elseSystem.out.print("Sunday");}}8.输入三角形的三边a,b,c,判断能否构成三角形.若能,计算面积.importjava.util.Scanner;publicclassProg8{publicstaticvoidmain(String[]args){System.out.print("请输入三个整数\n");Scannercin=newScanner(System.in);inta=cin.nextInt();intb=cin.nextInt();intc=cin.nextInt();if(a+b{System.out.print("不能构成三角形\n");}else{intl=a+b+c;System.out.print(l);}}}9.编程序,输入a,b,c,求方程ax2+bx+c=0的解。importjava.util.Scanner;publicclassProg9{publicstaticvoidmain(String[]args){System.out.print("请输入三个整数\n");Scannercin=newScanner(System.in);inta=cin.nextInt();intb=cin.nextInt();intc=cin.nextInt();if(a==0){System.out.println(-c/b);}elseif(b*b-4*a*c>=0){doublex1=(-b+Math.pow(1/2,b*b-4*a*c))/(2*a);doublex2=(-b-Math.pow(1/2,b*b-4*a*c))/(2*a);System.out.println(x1);System.out.print(x2);}elseSystem.out.print("无解");}}10.计算出前20项fibonacci数列,要求一行打印5个数.一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子? 我们不妨拿新出生的一对小兔子分析一下: 第一个月小兔子没有繁殖能力,所以还是一对; 两个月后,生下一对小兔总数共有两对; 三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对; …… 依次类推可以列出下表: 经过月数0123456789101112幼仔对数01123581321345589144成兔对数1123581321345589144233总体对数123581321345589144233377importjava.util.Scanner; publicclassProg10{publicstaticvoidmain(String[]args){Scannercin=newScanner(System.in);intn=cin.nextInt();inta=0,b=1,c=1;if(n==1){System.out.println(a);System.out.println(b);System.out.println(c);}else{for(inti=2;i<=n;i++){a=b;b=c;c=a+b;}System.out.println("幼崽数"+a+"成年兔子书"+b+"总数"+c);}}}11.输出100~10000之间个位数为3的所有素数。publicclassProg11{publicstaticvoidmain(String[]args){for(inti=103;i<10000;i=i+10){booleanflag=true;for(intj=2;j{if(i%j==0){flag=false;break;}}if(flag==true){System.out.println(i);}}}}12.百钱买百鸡问题:公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有几种买法.publicclassProg12{publicstaticvoidmain(String[]args){intm=0;for(inta=0;a<100;a++){for(intb=0;b<100;b++){for(intc=0;c<100;c++)if(5*a+3*b+1/3*c==100&&a+b+c==100)m++;}}System.out.print("一百元买一百只鸡有"+m+"种买法");}}13.请编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。importjava.util.Scanner;publicclassProg13{publicstaticvoidmain(String[]args){System.out.print("请输入两个整数\n");Scannercin=newScanner(System.in);inta=cin.nextInt();intb=cin.nextInt();if(a*a+b*b>100){System.out.print(a*a+b*b);}elseSystem.out.print(a+b);}}14.编程实现:对键盘输入的任意一个四位正整数,计算各位数字平方和。如:2345,则:计算22+32+42+52importjava.util.Scanner;publicclassProg14{publicstaticvoidmain(String[]args){System.out.print("请输入任意一个四位正整数\n");intsum=0;Scannercin=newScanner(System.in);inta=cin.nextInt();sum=(a/1000*a/1000)+((a/100)%10*(a/100)%10)+((a/10%100%10)*(a/10%100%10))+((a%10)*(a%10));System.out.print(sum); }}15.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程.publicclassProg15{publicstaticvoidmain(String[]args){intm=0,sum=1020;do{sum=sum/2-2;m++;}while(sum>=0);System.out.print(m+"天以后能卖完"); }}16.编程,输出200以内所有完全平方数C(满足C2=A2+B2)及其个数.publicclassProg16{publicstaticvoidmain(String[]args){intm=0;for(intC=1;C<200;C++){for(intA=1;A<=200;A++){for(intB=1;B<=200;B++){if(A*A+B*B==C*C){System.out.println(C);A=201;B=201;m++;}}}}System.out.println("个数为:"+m);}}17.设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),编程,输出所有满足条件的N。packageeasy;publicclassThe17{staticlongs,M;publicstaticvoidmain(String[]args){for(longN=1009;N<=1109;N=N+10){M=9*N;s=0;while(M>0){s=s*10+M%10;M=M/10;}if(N==s)System.out.println(s);}}}18.编程,输出555555的约数中最大的三位数。packageeasy;publicclassThe18th{publicstaticvoidmain(String[]args){doublea=555555;longb=0;//long[]yueShu=newlong[555555];for(longi=1;i<=555555;i++){if(a%i==0&&i>99&&i<1000){while(i>b){b=i;}}}System.out.println(b);}}19.编程,输出所有个位数为6且能被31整除的五位数及其个数。packageeasy;publicclassThe19th{publicstaticvoidmain(String[]args){for(longi=10006;i<=99996;i=i+10){if(i%31==0){System.out.println(i);}}}}20.编写程序,输入两个整数,和+、-、*、/、%之中的任意一个运算符,输出计算结果.packageeasy;//importjava.util.InputMismatchException;importjava.util.Scanner;publicclassThe20th{staticScannercin=newScanner(System.in);publicstaticvoidmain(String[]args){Scannercin1=newScanner(System.in);intd1,d2;Stringstr=newString("");d1=cin.nextInt();d2=cin.nextInt();//System.out.println(d1);//System.out.println(d2);str=cin1.nextLine();//System.out.println(str);//System.out.println(str.charAt(0));switch(str.charAt(0)){case'+':{System.out.println(d1+d2);break;}case'-':{System.out.println(d1-d2);break;}case'*':{System.out.println(d1*d2);break;}case'/':{System.out.println(d1/d2);break;}}}/*staticintadd(inta,intb){returna+b;}staticintsub(inta,intb){returna-b;}staticintmultiply(inta,intb){returna*b;}staticintdivide(inta,intb){return(int)(a/b);}*/}21.计算:1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…+n),n由键盘输入。packageeasy;importjava.util.Scanner;publicclassThe21th{publicstaticvoidmain(String[]args){doublesum=0,div=0;Scannercin=newScanner(System.in);intn=cin.nextInt();for(inti=1;i<=n;i++){div=div+i;System.out.println("1/"+div);sum=sum+1/div;}System.out.println(sum);}}22.编程计算:1*2*3+3*4*5+…+99*100*101的值.packageeasy;publicclassThe22th{publicstaticvoidmain(String[]args){longsum=0;for(inti=1;i+2<=101;i=i+2){sum=sum+i*(i+1)*(i+2);}System.out.println(sum);}} 二、比较简单问题:1.编一个函数GCD,求两个无符号整数的最大公约数。主函数输入两个正整数m和n,调用GCD,求出m和n的最大公约数和最小公倍数.并输出。packagemoreEasy;importjava.util.Scanner;publicclassThe1th{publicstaticvoidmain(String[]args){Scannercin=newScanner(System.in);intm=cin.nextInt();intn=cin.nextInt();System.out.println(m+"和"+n+"的最大公约数为:"+GCD(m,n));System.out.println(m+"和"+n+"的最小公倍数为:"+m*n/GCD(m,n));}publicstaticintGCD(inta,intb){
if(str.charAt(i)>'A'&&str.charAt(i)<='Z')
m++;
else
n++;
if(m>n)
System.out.println(m);
System.out.println(n);
3.编程,求全部水仙花数。
所谓水仙花数是指一个三位数,其各位数字立方的和等于该数。
如:
153=13+53+33。
publicclassProg3{
inta,b,c;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)
System.out.println(a*100+b*10+c);
4.请编制程序判断输入的正整数是否既是5又是7的整倍数。
若是,则输出yes;否则输出no。
publicclassProg4{
inti=cin.nextInt();
if(i%5==0&&i%7==0)
System.out.print("yes");
System.out.print("no");
5.请编程实现:
对于给定的一个百分制成绩,输出相应的五分制成绩。
设:
90分以上为‘A’,80—89分为‘B’,70—79分为‘C’,60—69分为‘D’,60分以下为‘E’。
publicclassProg5{
intm=cin.nextInt();
if(m>=60&&m<=69)
System.out.print("D");
if(m>=70&&m<=79)
System.out.print("C");
if(m>=80&&m<=89)
System.out.print("B");
if(m>=90)
System.out.print("A");
System.out.print("E");
6.输入一行字符,将其中的字母变成其后续的第3个字母,输出。
例:
a→d,x→a;y→b;编程实现。
publicclassProg6{
char[]zimu=newchar[]{'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','a','b','c'};
for(intj=0;j{for(inti=0;i<29;i++){if(str.charAt(j)==zimu[i]){System.out.println(zimu[i+3]);break;}}}7.编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词.例如:1转换成Monday,7转换成Sunday.importjava.util.Scanner;publicclassProg7{publicstaticvoidmain(String[]args){System.out.print("请输入任意一个1~7之间的整数\n");Scannercin=newScanner(System.in);intm=cin.nextInt();if(m==1)System.out.print("Monday");elseif(m==2)System.out.print("Tuesday");elseif(m==3)System.out.print("Wensday");elseif(m==4)System.out.print("Thuesday");elseif(m==5)System.out.print("Friday");elseif(m==6)System.out.print("Saturday");elseSystem.out.print("Sunday");}}8.输入三角形的三边a,b,c,判断能否构成三角形.若能,计算面积.importjava.util.Scanner;publicclassProg8{publicstaticvoidmain(String[]args){System.out.print("请输入三个整数\n");Scannercin=newScanner(System.in);inta=cin.nextInt();intb=cin.nextInt();intc=cin.nextInt();if(a+b{System.out.print("不能构成三角形\n");}else{intl=a+b+c;System.out.print(l);}}}9.编程序,输入a,b,c,求方程ax2+bx+c=0的解。importjava.util.Scanner;publicclassProg9{publicstaticvoidmain(String[]args){System.out.print("请输入三个整数\n");Scannercin=newScanner(System.in);inta=cin.nextInt();intb=cin.nextInt();intc=cin.nextInt();if(a==0){System.out.println(-c/b);}elseif(b*b-4*a*c>=0){doublex1=(-b+Math.pow(1/2,b*b-4*a*c))/(2*a);doublex2=(-b-Math.pow(1/2,b*b-4*a*c))/(2*a);System.out.println(x1);System.out.print(x2);}elseSystem.out.print("无解");}}10.计算出前20项fibonacci数列,要求一行打印5个数.一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子? 我们不妨拿新出生的一对小兔子分析一下: 第一个月小兔子没有繁殖能力,所以还是一对; 两个月后,生下一对小兔总数共有两对; 三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对; …… 依次类推可以列出下表: 经过月数0123456789101112幼仔对数01123581321345589144成兔对数1123581321345589144233总体对数123581321345589144233377importjava.util.Scanner; publicclassProg10{publicstaticvoidmain(String[]args){Scannercin=newScanner(System.in);intn=cin.nextInt();inta=0,b=1,c=1;if(n==1){System.out.println(a);System.out.println(b);System.out.println(c);}else{for(inti=2;i<=n;i++){a=b;b=c;c=a+b;}System.out.println("幼崽数"+a+"成年兔子书"+b+"总数"+c);}}}11.输出100~10000之间个位数为3的所有素数。publicclassProg11{publicstaticvoidmain(String[]args){for(inti=103;i<10000;i=i+10){booleanflag=true;for(intj=2;j{if(i%j==0){flag=false;break;}}if(flag==true){System.out.println(i);}}}}12.百钱买百鸡问题:公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有几种买法.publicclassProg12{publicstaticvoidmain(String[]args){intm=0;for(inta=0;a<100;a++){for(intb=0;b<100;b++){for(intc=0;c<100;c++)if(5*a+3*b+1/3*c==100&&a+b+c==100)m++;}}System.out.print("一百元买一百只鸡有"+m+"种买法");}}13.请编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。importjava.util.Scanner;publicclassProg13{publicstaticvoidmain(String[]args){System.out.print("请输入两个整数\n");Scannercin=newScanner(System.in);inta=cin.nextInt();intb=cin.nextInt();if(a*a+b*b>100){System.out.print(a*a+b*b);}elseSystem.out.print(a+b);}}14.编程实现:对键盘输入的任意一个四位正整数,计算各位数字平方和。如:2345,则:计算22+32+42+52importjava.util.Scanner;publicclassProg14{publicstaticvoidmain(String[]args){System.out.print("请输入任意一个四位正整数\n");intsum=0;Scannercin=newScanner(System.in);inta=cin.nextInt();sum=(a/1000*a/1000)+((a/100)%10*(a/100)%10)+((a/10%100%10)*(a/10%100%10))+((a%10)*(a%10));System.out.print(sum); }}15.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程.publicclassProg15{publicstaticvoidmain(String[]args){intm=0,sum=1020;do{sum=sum/2-2;m++;}while(sum>=0);System.out.print(m+"天以后能卖完"); }}16.编程,输出200以内所有完全平方数C(满足C2=A2+B2)及其个数.publicclassProg16{publicstaticvoidmain(String[]args){intm=0;for(intC=1;C<200;C++){for(intA=1;A<=200;A++){for(intB=1;B<=200;B++){if(A*A+B*B==C*C){System.out.println(C);A=201;B=201;m++;}}}}System.out.println("个数为:"+m);}}17.设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),编程,输出所有满足条件的N。packageeasy;publicclassThe17{staticlongs,M;publicstaticvoidmain(String[]args){for(longN=1009;N<=1109;N=N+10){M=9*N;s=0;while(M>0){s=s*10+M%10;M=M/10;}if(N==s)System.out.println(s);}}}18.编程,输出555555的约数中最大的三位数。packageeasy;publicclassThe18th{publicstaticvoidmain(String[]args){doublea=555555;longb=0;//long[]yueShu=newlong[555555];for(longi=1;i<=555555;i++){if(a%i==0&&i>99&&i<1000){while(i>b){b=i;}}}System.out.println(b);}}19.编程,输出所有个位数为6且能被31整除的五位数及其个数。packageeasy;publicclassThe19th{publicstaticvoidmain(String[]args){for(longi=10006;i<=99996;i=i+10){if(i%31==0){System.out.println(i);}}}}20.编写程序,输入两个整数,和+、-、*、/、%之中的任意一个运算符,输出计算结果.packageeasy;//importjava.util.InputMismatchException;importjava.util.Scanner;publicclassThe20th{staticScannercin=newScanner(System.in);publicstaticvoidmain(String[]args){Scannercin1=newScanner(System.in);intd1,d2;Stringstr=newString("");d1=cin.nextInt();d2=cin.nextInt();//System.out.println(d1);//System.out.println(d2);str=cin1.nextLine();//System.out.println(str);//System.out.println(str.charAt(0));switch(str.charAt(0)){case'+':{System.out.println(d1+d2);break;}case'-':{System.out.println(d1-d2);break;}case'*':{System.out.println(d1*d2);break;}case'/':{System.out.println(d1/d2);break;}}}/*staticintadd(inta,intb){returna+b;}staticintsub(inta,intb){returna-b;}staticintmultiply(inta,intb){returna*b;}staticintdivide(inta,intb){return(int)(a/b);}*/}21.计算:1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…+n),n由键盘输入。packageeasy;importjava.util.Scanner;publicclassThe21th{publicstaticvoidmain(String[]args){doublesum=0,div=0;Scannercin=newScanner(System.in);intn=cin.nextInt();for(inti=1;i<=n;i++){div=div+i;System.out.println("1/"+div);sum=sum+1/div;}System.out.println(sum);}}22.编程计算:1*2*3+3*4*5+…+99*100*101的值.packageeasy;publicclassThe22th{publicstaticvoidmain(String[]args){longsum=0;for(inti=1;i+2<=101;i=i+2){sum=sum+i*(i+1)*(i+2);}System.out.println(sum);}} 二、比较简单问题:1.编一个函数GCD,求两个无符号整数的最大公约数。主函数输入两个正整数m和n,调用GCD,求出m和n的最大公约数和最小公倍数.并输出。packagemoreEasy;importjava.util.Scanner;publicclassThe1th{publicstaticvoidmain(String[]args){Scannercin=newScanner(System.in);intm=cin.nextInt();intn=cin.nextInt();System.out.println(m+"和"+n+"的最大公约数为:"+GCD(m,n));System.out.println(m+"和"+n+"的最小公倍数为:"+m*n/GCD(m,n));}publicstaticintGCD(inta,intb){
for(inti=0;i<29;i++)
if(str.charAt(j)==zimu[i])
System.out.println(zimu[i+3]);
break;
7.编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词.例如:
1转换成Monday,7转换成Sunday.
publicclassProg7{
System.out.print("请输入任意一个1~7之间的整数\n");
if(m==1)
System.out.print("Monday");
if(m==2)
System.out.print("Tuesday");
if(m==3)
System.out.print("Wensday");
if(m==4)
System.out.print("Thuesday");
if(m==5)
System.out.print("Friday");
if(m==6)
System.out.print("Saturday");
System.out.print("Sunday");
8.输入三角形的三边a,b,c,判断能否构成三角形.若能,计算面积.
publicclassProg8{
System.out.print("请输入三个整数\n");
inta=cin.nextInt();
intb=cin.nextInt();
intc=cin.nextInt();
if(a+b{System.out.print("不能构成三角形\n");}else{intl=a+b+c;System.out.print(l);}}}9.编程序,输入a,b,c,求方程ax2+bx+c=0的解。importjava.util.Scanner;publicclassProg9{publicstaticvoidmain(String[]args){System.out.print("请输入三个整数\n");Scannercin=newScanner(System.in);inta=cin.nextInt();intb=cin.nextInt();intc=cin.nextInt();if(a==0){System.out.println(-c/b);}elseif(b*b-4*a*c>=0){doublex1=(-b+Math.pow(1/2,b*b-4*a*c))/(2*a);doublex2=(-b-Math.pow(1/2,b*b-4*a*c))/(2*a);System.out.println(x1);System.out.print(x2);}elseSystem.out.print("无解");}}10.计算出前20项fibonacci数列,要求一行打印5个数.一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔都不死,那么一年以后可以繁殖多少对兔子? 我们不妨拿新出生的一对小兔子分析一下: 第一个月小兔子没有繁殖能力,所以还是一对; 两个月后,生下一对小兔总数共有两对; 三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对; …… 依次类推可以列出下表: 经过月数0123456789101112幼仔对数01123581321345589144成兔对数1123581321345589144233总体对数123581321345589144233377importjava.util.Scanner; publicclassProg10{publicstaticvoidmain(String[]args){Scannercin=newScanner(System.in);intn=cin.nextInt();inta=0,b=1,c=1;if(n==1){System.out.println(a);System.out.println(b);System.out.println(c);}else{for(inti=2;i<=n;i++){a=b;b=c;c=a+b;}System.out.println("幼崽数"+a+"成年兔子书"+b+"总数"+c);}}}11.输出100~10000之间个位数为3的所有素数。publicclassProg11{publicstaticvoidmain(String[]args){for(inti=103;i<10000;i=i+10){booleanflag=true;for(intj=2;j{if(i%j==0){flag=false;break;}}if(flag==true){System.out.println(i);}}}}12.百钱买百鸡问题:公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有几种买法.publicclassProg12{publicstaticvoidmain(String[]args){intm=0;for(inta=0;a<100;a++){for(intb=0;b<100;b++){for(intc=0;c<100;c++)if(5*a+3*b+1/3*c==100&&a+b+c==100)m++;}}System.out.print("一百元买一百只鸡有"+m+"种买法");}}13.请编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。importjava.util.Scanner;publicclassProg13{publicstaticvoidmain(String[]args){System.out.print("请输入两个整数\n");Scannercin=newScanner(System.in);inta=cin.nextInt();intb=cin.nextInt();if(a*a+b*b>100){System.out.print(a*a+b*b);}elseSystem.out.print(a+b);}}14.编程实现:对键盘输入的任意一个四位正整数,计算各位数字平方和。如:2345,则:计算22+32+42+52importjava.util.Scanner;publicclassProg14{publicstaticvoidmain(String[]args){System.out.print("请输入任意一个四位正整数\n");intsum=0;Scannercin=newScanner(System.in);inta=cin.nextInt();sum=(a/1000*a/1000)+((a/100)%10*(a/100)%10)+((a/10%100%10)*(a/10%100%10))+((a%10)*(a%10));System.out.print(sum); }}15.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程.publicclassProg15{publicstaticvoidmain(String[]args){intm=0,sum=1020;do{sum=sum/2-2;m++;}while(sum>=0);System.out.print(m+"天以后能卖完"); }}16.编程,输出200以内所有完全平方数C(满足C2=A2+B2)及其个数.publicclassProg16{publicstaticvoidmain(String[]args){intm=0;for(intC=1;C<200;C++){for(intA=1;A<=200;A++){for(intB=1;B<=200;B++){if(A*A+B*B==C*C){System.out.println(C);A=201;B=201;m++;}}}}System.out.println("个数为:"+m);}}17.设N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),编程,输出所有满足条件的N。packageeasy;publicclassThe17{staticlongs,M;publicstaticvoidmain(String[]args){for(longN=1009;N<=1109;N=N+10){M=9*N;s=0;while(M>0){s=s*10+M%10;M=M/10;}if(N==s)System.out.println(s);}}}18.编程,输出555555的约数中最大的三位数。packageeasy;publicclassThe18th{publicstaticvoidmain(String[]args){doublea=555555;longb=0;//long[]yueShu=newlong[555555];for(longi=1;i<=555555;i++){if(a%i==0&&i>99&&i<1000){while(i>b){b=i;}}}System.out.println(b);}}19.编程,输出所有个位数为6且能被31整除的五位数及其个数。packageeasy;publicclassThe19th{publicstaticvoidmain(String[]args){for(longi=10006;i<=99996;i=i+10){if(i%31==0){System.out.println(i);}}}}20.编写程序,输入两个整数,和+、-、*、/、%之中的任意一个运算符,输出计算结果.packageeasy;//importjava.util.InputMismatchException;importjava.util.Scanner;publicclassThe20th{staticScannercin=newScanner(System.in);publicstaticvoidmain(String[]args){Scannercin1=newScanner(System.in);intd1,d2;Stringstr=newString("");d1=cin.nextInt();d2=cin.nextInt();//System.out.println(d1);//System.out.println(d2);str=cin1.nextLine();//System.out.println(str);//System.out.println(str.charAt(0));switch(str.charAt(0)){case'+':{System.out.println(d1+d2);break;}case'-':{System.out.println(d1-d2);break;}case'*':{System.out.println(d1*d2);break;}case'/':{System.out.println(d1/d2);break;}}}/*staticintadd(inta,intb){returna+b;}staticintsub(inta,intb){returna-b;}staticintmultiply(inta,intb){returna*b;}staticintdivide(inta,intb){return(int)(a/b);}*/}21.计算:1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…+n),n由键盘输入。packageeasy;importjava.util.Scanner;publicclassThe21th{publicstaticvoidmain(String[]args){doublesum=0,div=0;Scannercin=newScanner(System.in);intn=cin.nextInt();for(inti=1;i<=n;i++){div=div+i;System.out.println("1/"+div);sum=sum+1/div;}System.out.println(sum);}}22.编程计算:1*2*3+3*4*5+…+99*100*101的值.packageeasy;publicclassThe22th{publicstaticvoidmain(String[]args){longsum=0;for(inti=1;i+2<=101;i=i+2){sum=sum+i*(i+1)*(i+2);}System.out.println(sum);}} 二、比较简单问题:1.编一个函数GCD,求两个无符号整数的最大公约数。主函数输入两个正整数m和n,调用GCD,求出m和n的最大公约数和最小公倍数.并输出。packagemoreEasy;importjava.util.Scanner;publicclassThe1th{publicstaticvoidmain(String[]args){Scannercin=newScanner(System.in);intm=cin.nextInt();intn=cin.nextInt();System.out.println(m+"和"+n+"的最大公约数为:"+GCD(m,n));System.out.println(m+"和"+n+"的最小公倍数为:"+m*n/GCD(m,n));}publicstaticintGCD(inta,intb){
System.out.print("不能构成三角形\n");
intl=a+b+c;
System.out.print(l);
9.编程序,输入a,b,c,求方程ax2+bx+c=0的解。
publicclassProg9{
if(a==0)
System.out.println(-c/b);
elseif(b*b-4*a*c>=0)
doublex1=(-b+Math.pow(1/2,b*b-4*a*c))/(2*a);
doublex2=(-b-Math.pow(1/2,b*b-4*a*c))/(2*a);
System.out.println(x1);
System.out.print(x2);
elseSystem.out.print("无解");
10.计算出前20项fibonacci数列,要求一行打印5个数.
一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。
如果所有兔都不死,那么一年以后可以繁殖多少对兔子?
我们不妨拿新出生的一对小兔子分析一下:
第一个月小兔子没有繁殖能力,所以还是一对;
两个月后,生下一对小兔总数共有两对;
三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对;
……
依次类推可以列出下表:
经过月数
0
1
2
3
4
5
6
7
8
9
10
11
12
幼仔对数
13
21
34
55
89
144
成兔对数
233
总体对数
377
publicclassProg10{
intn=cin.nextInt();
inta=0,b=1,c=1;
if(n==1){System.out.println(a);
System.out.println(b);
System.out.println(c);}
for(inti=2;i<=n;i++)
a=b;
b=c;
c=a+b;
System.out.println("幼崽数"+a+"成年兔子书"+b+"总数"+c);
11.输出100~10000之间个位数为3的所有素数。
publicclassProg11{
for(inti=103;i<10000;i=i+10)
booleanflag=true;
for(intj=2;j
if(i%j==0)
{flag=false;break;}
if(flag==true){System.out.println(i);}
12.百钱买百鸡问题:
公鸡每只5元,母鸡每只3元,小鸡3只一元,问一百元买一百只鸡有几种买法.
publicclassProg12{
intm=0;
for(inta=0;a<100;a++)
for(intb=0;b<100;b++)
for(intc=0;c<100;c++)
if(5*a+3*b+1/3*c==100&&a+b+c==100)
System.out.print("一百元买一百只鸡有"+m+"种买法");
13.请编制程序要求输入整数a和b,若a2+b2大于100,则输出a2+b2百位以上的数字,否则输出两数之和。
publicclassProg13{
System.out.print("请输入两个整数\n");
if(a*a+b*b>100)
System.out.print(a*a+b*b);
System.out.print(a+b);
14.编程实现:
对键盘输入的任意一个四位正整数,计算各位数字平方和。
2345,则:
计算22+32+42+52
publicclassProg14{
System.out.print("请输入任意一个四位正整数\n");
intsum=0;
sum=(a/1000*a/1000)+((a/100)%10*(a/100)%10)+((a/10%100%10)*(a/10%100%10))+((a%10)*(a%10));
System.out.print(sum);
15.有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完,请编程.
publicclassProg15{
intm=0,sum=1020;
do{
sum=sum/2-2;
}while(sum>=0);
System.out.print(m+"天以后能卖完");
16.编程,输出200以内所有完全平方数C(满足C2=A2+B2)及其个数.
publicclassProg16{
for(intC=1;C<200;C++)
for(intA=1;A<=200;A++)
for(intB=1;B<=200;B++)
if(A*A+B*B==C*C)
{System.out.println(C);
A=201;
B=201;
m++;}
System.out.println("个数为:
"+m);
17.设N是一个四位数,它的9倍恰好是其反序数(例如:
123的反序数是321),编程,输出所有满足条件的N。
packageeasy;
publicclassThe17{
staticlongs,M;
for(longN=1009;N<=1109;N=N+10){
M=9*N;
s=0;
while(M>0){
s=s*10+M%10;
M=M/10;
if(N==s)
System.out.println(s);
18.编程,输出555555的约数中最大的三位数。
publicclassThe18th{
doublea=555555;
longb=0;
//long[]yueShu=newlong[555555];
for(longi=1;i<=555555;i++){
if(a%i==0&&i>99&&i<1000){
while(i>b){
b=i;
19.编程,输出所有个位数为6且能被31整除的五位数及其个数。
publicclassThe19th{
for(longi=10006;i<=99996;i=i+10){
if(i%31==0){
System.out.println(i);
20.编写程序,输入两个整数,和+、-、*、/、%之中的任意一个运算符,输出计算结果.
//importjava.util.InputMismatchException;
publicclassThe20th{
staticScannercin=newScanner(System.in);
Scannercin1=newScanner(System.in);
intd1,d2;
Stringstr=newString("");
d1=cin.nextInt();
d2=cin.nextInt();
//System.out.println(d1);
//System.out.println(d2);
str=cin1.nextLine();
//System.out.println(str);
//System.out.println(str.charAt(0));
switch(str.charAt(0)){
case'+':
System.out.println(d1+d2);
case'-':
System.out.println(d1-d2);
case'*':
System.out.println(d1*d2);
case'/':
System.out.println(d1/d2);
/*staticintadd(inta,intb){
returna+b;
staticintsub(inta,intb){
returna-b;
staticintmultiply(inta,intb){
returna*b;
staticintdivide(inta,intb){
return(int)(a/b);
}*/
21.计算:
1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…+n),n由键盘输入。
publicclassThe21th{
doublesum=0,div=0;
for(inti=1;i<=n;i++){
div=div+i;
System.out.println("1/"+div);
sum=sum+1/div;
System.out.println(sum);
22.编程计算:
1*2*3+3*4*5+…+99*100*101的值.
publicclassThe22th{
longsum=0;
for(inti=1;i+2<=101;i=i+2){
sum=sum+i*(i+1)*(i+2);
二、比较简单问题:
1.编一个函数GCD,求两个无符号整数的最大公约数。
主函数输入两个正整数m和n,调用GCD,求出m和n的最大公约数和最小公倍数.并输出。
packagemoreEasy;
publicclassThe1th{
System.out.println(m+"和"+n+"的最大公约数为:
"+GCD(m,n));
System.out.println(m+"和"+n+"的最小公倍数为:
"+m*n/GCD(m,n));
publicstaticintGCD(inta,intb){
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1