您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 编程(C语言源程序代码)
1已知S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+N),当N的值为50时,求S的值。要求:按四舍五入的方式精确到小数点后第四位。#includestdio.h#includemath.hmain(){floats=0.0;intn,t=0;for(n=1;n=50;n++){t=t+n;s=s+1.0/t;}printf(%7.4f,s);}1.9608把一张一元钞票,换成一分、二分和五分硬币,每种至少11枚,问有多少种方案?#includestdio.hvoidmain(){intx,y,z,count=0;for(x=11;x=100;x++;){for(y=11;y=50;y++;){for(z=11;z=20;z++){if(x+2*y+5*z==100)printf(“x=%d,y=%d,z=%d”,x,y,z);count++;}}}printf(“thereare%dmethods”,count);}13“完数”:一个数如果恰好等于它的所有真因子之和,这个数就称为“完数”。例如,6的真因子为1,2,3,而6=1+2+3,因此,6是“完数”。求1000以内的所有完数之和。#includestdio.hmain(){inti,j,s=0,t;for(i=2;i=1000;i++){t=1;for(j=2;ji;j++)if(i%j==0)t=t+j;if(t==i){printf(%4d,i);s=s+i;}}printf(\n%d,s);}530下面的程序是求[200,800]之间最大的20个素数之和。程序:#includestdio.h#includemath.hvoidmain()145102{intk=800,sum=0,n=0,j,yes;while((k=200)&&(n20)){yes=1;for(j=2;j=sqrt(k);j++)if(k%j==0){yes=0;break;}if(yes){printf(“%5d”,k);sum+=k;n++;if(n%5==0)printf(“\n”);}k--;}printf(%d\n,sum);}“同构数”:所谓“同构数”是指这样一个数,它出现在它的平方数的右侧,例如5的平方是25,25的平方是625,故5和25都是同构数,求[2,1000]之间所有同构数之和。(提示:若x是m位同构数,则x的平方除以10的m次方的余数就是x)#includeconio.h#includestdio.h#includemath.hmain(){longs;longk,n,sum=0,count=0;clrscr();for(n=2;n=1000;n++){if(n10)k=10;elseif(n100)k=100;elsek=1000;s=n*n;if(s%k==n){count++;sum+=n;printf(%4d,n);}}printf(\n%5ld,%5ld,count,sum);}1113倒勾股数:A,B,C是三个小于或等于300的正整数,当满足1/A^2+1/B^2=1/C^2关系,并且ABC时,称为倒勾股数。求这样的倒勾股数有多少组。填空完成程序,然后运行程序得出正确结果。(答案填程序运行结果,保留整数位)#includestdio.hmain(){doublea,b,c;intcount=0;clrscr();for(c=1;c=300;c++)for(b=c+1;b=300;b++)for(a=b+1;a=300;a++)if(1.0/(a*a)+1.0/(b*b)==1.0/(c*c))count=count+1;printf(%d,count);}113A,B,C是三个小于或等于100正整数,当满足1/A^2+1/B^2=1/C^2关系时,称为倒勾股数。求130A+B+C150且ABC的倒勾股数有多少组。1(101)求方程9x+4y=2000的所有正整数解的|x-y|的最大值#includeconio.h#includestdio.hmain(){intx,y,z,max=0;for(x=1;x230;x++){y=(int)((2000-9*x)/4);z=abs(x-y);if(9*x+4*y==2000&&y0&&maxz)max=z;}printf(“%d”,max);}487下面的程序是求[200,800]之间最大的20个素数之和。请修改程序中的错误,使它能得出正确的结果,并给出正确结果。程序:#includeconio.h#includestdio.h#includemath.hintfun(inthigh){intsum=0,n=0,j,yes;while((high=200)&&(n=20)){yes=1;for(j=2;j=sqrt(high);j++)if(high%j==0){yes=0;break;}if(yes){sum+=high;n++;}high--;}returnsum;}main(){clrscr();printf(%d\n,fun(800));}14510求出9269和8671的最小公倍数。[算法提示:a与b的最小公倍数是a的倍数中第1个被b整除的数]settalkoffcleara=9269b=8671k=adowhilemod(k,a)=0k=k*aendfor?k4settalkonreturn(102)梅森尼数是指能使2^n-1为素数的数n,求[2,21]范围内最大的梅素尼数?#includemath.h#includestdio.hmain(){inti,j,flag;longk;for(i=21;i=2;i--){flag=1;k=pow(2,i)-1;for(j=2;j=sqrt(k);j++)if(k%j==0){flag=0;break;}if(flag==1){printf(%d,i);break;}}}19猴吃桃:有一天小猴子摘下了若干个桃子,当即吃掉一半,还觉得不过瘾,又多吃了一个。第二天接着吃了剩下的桃子中的一半,仍不过瘾,又多吃了一个。以后每天都是吃尚存桃子的一半零一个。到第10天早上小猴子再去吃桃子时,看到只剩下一个桃子了。问小猴子第一天共摘下了多少个桃子。#includestdio.hmain(){inti,s=1;for(i=9;i=1;i--)s=2*(s+1);printf(%d,s);}1113若一个四位正整数是另一个正整数的平方,且各位数字的和是一个平方数,则称该四位正整数是“四位双平方数”。例如:由于7396=86^2,且7+3+9+6=25=5^2,则称7396是“四位双平方数”。若把所有“四位双平方数”按升序排列,求前10个“四位双平方数”的和。#includestdio.h#includemath.hmain(){intn=0,i,a,b,c,d,f;longs=0;for(i=1000;i=9999;i++){a=(int)(i/1000);b=(int)((i-a*1000)/100);c=(int)((i-a*1000-b*100)/10);d=i%10;f=a+b+c+d;if((int)(sqrt(i))==sqrt(i)&&(int)sqrt(f)==sqrt(f)){n=n+1;s=s+i;printf(%5d,i);}5if(n==10)break;}printf(\n%ld,s);}已知数列:1,2,4,7,11,16,…,其规律是相邻两项之差依次是1,2,3,4,5,…。求100以内最小的自然数n使得此数列的前n项之和大于800。#includestdio.hmain(){ints=0,n=0,t=1;while(1){t=t+n;s=s+t;if(s800){break;printf(%d,s);}elsen++;}printf(\n%d,n);}1534某些分数的分子和分母都是二位正整数的真分数具有下列特点:如果将该分数的分子的两位数字相加作分子,而将该分数的分母的两位数字相加作分母,得到的新分子跟原分子相等。例如,63/84=(6+3)/(8+4)。试求所有具有这种特点的真分子(非约简真分数)的分子与分母之和的和。29690数列:E(1)=E(2)=1E(n)=(n-1)*E(n-1)+(n-2)*E(n-2)(n2)称为E数列,每一个E(n),(n=1,2,…)称为E数。求[1,30000]之内E数的个数。#includestdio.h#includemath.hmain(){intcount=2,n=3;longE1=1,E2=1,E3;while(1){E3=(n-1)*E2+(n-2)*E1;If(E330000)break;Else{count++;printf(“%5d”,E3);E1=E2;E2=E3;n++;}printf(“%d”,count);}10134求[200,300]之间第二大有奇数个不同因子的整数(在计算因子个数时,包括该数本身)。6已知AB,A和B均为正整数,且A*B=2698,求A+B的最小值。#includestdio.h#includemath.hmain(){inta,b,min=3000;for(a=1;a=(int)sqrt(2698);a++)for(b=(int)sqrt(2698);b=2698;b++)if(a*b==2698&&a+bmin)min=a+b;printf(%d,min);}8已知X,Y,Z为三个正整数,且X^2+Y^2+Z^2=25^2,求X+Y+Z的最大值。256一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数。如13,试求所有两位绝对素数的和。109若某整数平方等于某两个正整数平方之和的正整数称为弦数。例如:由于3^2+4^2=5^2,则5为弦数,求[100,199]之间最大的弦数。429下面的程序是求表达式的值:s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+......+(1*2*3*......*n)/(3*5*7*......(2*n+1))请将程序补充完整,并给出当n=28时,程序的运行结果(按四舍五入保留10位小数)程序:aaa.c100、(A,B)满足条件A是素数,B是素数,A+B的和也是一个素数,又777BA=2。求这样的(A,B)中所有A+B的和是多少。填空完成程序,然后运行程序得出正确结果。(答案填程序运行结果,保留整数位)#includestdio.h#includemath.hintsu(intx){intj,k;k=sqrt(x);for(j=2;j=k;j++)if(x%j==0){return(0);break;}if(jk)return(1);}main(){intsum=0,a,b;for(a=3;a=777;a++){for(b=a+1;b=777;b++)if(su(a)&&su(b)&&su(a+b)){sum=sum+a+b;printf(%d%d,a,b);}}printf(\n%d,sum);}197799、下面的程序中,函数fun的功能是:根据形参m,计算下面公式的值。T=1/1!+1/2!+1/3!...+1/m!请改正程序中的错误,并运行改正后的程序。当从键盘输入10时,给出程序运行的正确结果(按四舍五入保留10位小数)。程序:#includeconio.h#includestdio.hdoublefun(intm){doublefac,t=0.0;inti=1,j;for(i=1;i=m;i++){fac=1.0;for(j=1;j=m;j++)fac=fac*i;t+=1.0/fac;}returnt;}main(){i
本文标题:编程(C语言源程序代码)
链接地址:https://www.777doc.com/doc-3791376 .html