编程(C语言源程序代码)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

count=count+1 ;
printf("%d",count);}
A,B,C 是三个小于或等于 100 正整数,当满足 1/A^2+1/B^2=1/C^2 关系时, 1
称为倒勾股数。求 130<A+B+C<150 且 A>B>C 的倒勾股数有多少组。
(101)求方程 9x+4y=2000 的所有正整数解的|x-y|的最大值
已知 S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+N) ,当 N 的值为 50 时,求 1.9608 S 的值。 要求:按四舍五入的方式精确到小数点后第四位。 #include <stdio.h> #include<math.h> main() {float s=0.0;
int n,t=0; for(n=1;n<=50;n++)
if (flag==1) {printf("%d",i);break;}
}
}
7
1113 猴吃桃:有一天小猴子摘下了若干个桃子,当即吃掉一半,还觉得不过瘾, 又多吃了一个。第二天接着吃了剩下的桃子中的一半,仍不过瘾,又多吃了 一个。以后每天都是吃尚存桃子的一半零一个。到第 10 天早上小猴子再去 吃桃子时,看到只剩下一个桃子了。问小猴子第一天共摘下了多少个桃子。 #include<stdio.h> main() {int i,s=1; for(i=9;i>=1;i--)
数列:
10134
E(1)=E(2)=1
E(n)=(n-1)*E(n-1)+(n-2)*E(n-2)
(n>2)
称为 E 数列,每一个 E(n),(n=1,2,…)称为 E 数。
求[1,30000]之内 E 数的个数。
#include<stdio.h>
#include<math.h>
main()
{int count=2, n=3;
long E1=1,E2=1,E3;
while(1)
{ E3=(n-1)*E2+(n-2)*E1;
If(E3>30000) break;
Else {count++; printf(“%5d”,E3);
E1=E2;
E2=E3;
n++;
10
}
printf(“%d”,count);
}
求[200,300]之间第二大有奇数个不同因子的整数(在计算因子个数时,包括
{t=t+n; s=s+1.0/t;
} printf("%7.4f",s);
} 把一张一元钞票,换成一分、二分和五分硬币,每种至少 11 枚,问有多少种方 13 案? #include< stdio.h >
void main() {int x,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)
if (a*b==2698 && a+b<min ) min=a+b;
printf("%d",min);
}
已知 X,Y,Z 为三个正整数,且 X^2+Y^2+Z^2=25^2,求 X+Y+Z 的最大值。
256
一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对 109
素数。如 13,试求所有两位绝对素数的和。
1
printf(“x=%d,y=%d,z=%d”,x,y,z); count++; } } } printf(“there are %d methods”,count); } “完数”: 一个数如果恰好等于它的所有真因子之和,这个数就称为“完数”。例如, 530 6 的真因子为 1,2,3,而 6=1+2+3,因此,6 是“完数”。求 1000 以内的 所有完数之和。 #include<stdio.h> main() {int i,j,s=0,t; for(i=2;i<=1000;i++) {t=1; for(j=2;j<i;j++) if(i%j==0) t=t+j; if(t==i) {printf("%4d",i);s=s+i;} } printf("\n%d",s); }
求出9269和8671的最小公倍数。[ 算法提示:a与b的最小公倍数是a的倍数 中第1个被b整除的数 ] set talk off clear a=9269
6
b=8671
k=a
do while mod(k,a)=0
k=k*a
endfor
?k
set talk on
return
(102)梅森尼数是指能使 2^n-1 为素数的数 n,求[2,21]范围内最大的梅素
方是 25,25 的平方是 625,故 5 和 25 都是同构数,求[2,1000]之间所有
同构数之和。(提示:若 x 是 m 位同构数,则 x 的平方除以 10 的 m 次方的
余数就是 x)
#include <conio.h>
3
#include <stdio.h>
#include <math.h>
该数本身)。
已知 A<B, A 和 B 均为正整数,且 A*B=2698,求 A+B 的最小值。
#include<stdio.h>
8
#include<math.h>
main()
{int a,b,min=3000;
for(a=1;a<=(int)sqrt(2698);a++)
for(b=(int)sqrt(2698);b<=2698;b++)
若某整数平方等于某两个正整数平方之和的正整数称为弦数。例如:由于
3^2+4^2=5^2,则 5 为弦数,求[100,199]之间最大的弦数。
429
11
下面的程序是求表达式的值:
s=1+1/3+(1*2)/(3*5)+(1*2*3)/(3*5*7)+......+(1*2*3*......*n)/(3*5*
}
printf("\n%5ld,%5ld",count,sum);
}
倒勾股数:
11
A,B,C是三个小于或等于300的正整数,当满足1/A^2+1/B^2=1/C^2关系,并且
A>B>C时,称为倒勾股数。求这样的倒勾股数有多少组。填空完成程序,然
后运行程序得出正确结果。(答案填程序运行结果,保留整数位)
}
printf(“%d”,max);
}
下面的程序是求[200,800]之间最大的20个素数之和。请修改程序中的错误, 14510
使它能得出正确的结果,并给出正确结果。
程序:
5
#include <conio.h> #include <stdio.h> #include <math.h> int fun(int high) { int sum=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--; } return sum; } main() { clrscr(); printf("%d \n",fun(800)); }
7*......(2*n+1))
请将程序补充完整,并给出当 n=28 时,程序的运行结果(按四舍五入保留
10 位小数)
程序:
aaa.c
100、(A,B)满足条件A是素数,B是素数,A+B的和也是一个素数,又
197
777>B>A>=2。求这样的(A,B)中所有A+B的和是多少。填空完成程序,然
后运行程序得出正确结果。(答案填程序运行结果,保留整数位)
main()
{ long s;
long k,n,sum=0,count=0;
clrscr();
for (n=2;n<=1000;n++)
{ if (n<10) k=10;
else if (n<100) k=100;
else k=1000;
s=n*n;
if (s%k==n) {count++;sum+=n;printf("%4d",n);}
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);
}
“同构数”:
1113
所谓“同构数”是指这样一个数,它出现在它的平方数的右侧,例如 5 的平
#include<stdio.h>
main()
{double a,b,c;
int count=0;
clrscr();
4
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) )
9
printf("\n%d",n); }
某些分数的分子和分母都是二位正整数的真分数具有下列特点:如果将该分
数的分子的两位数字相加作分子,而将该分数的分母的两位数字相加作分 29690
母,得到的新分子跟原分子相等。例如,63/84=(6+3)/(8+4)。试求所
有具有这种特点的真分子(非约简真分数)的分子与分母之和的和。
s=2*(s+1) ; printf("%d",s); } 若一个四位正整数是另一个正整数的平方,且各位数字的和是一个 平方数,则称该四位正整数是“四位双平方数”。例如: 由于 7396=86^2,且 7+3+9+6=25=5^2,则称 7396 是 “四位双平方数”。若把所有“四位双平方数”按升序排列, 求前 10 个“四位双平方数”的和。 #include<stdio.h> #include<math.h> main() {int n=0,i,a,b,c,d,f; long s=0; for(i=1000;i<=9999;i++)
#include <stdio.h>
#include <math.h>
来自百度文库
int su(int x)
{int j,k;
k=sqrt(x) ;
for(j=2;j<=k;j++)
if (x%j==0) {return(0);break;}
if (j>k) return(1);
}
main()
{ int sum=0,a,b;
尼数?
19
#include <math.h>
#include <stdio.h>
main()
{int i,j,flag;
long k;
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;}
{ a=(int)(i/1000);
8
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); } if(n==10) break;
} printf("\n%ld",s);
} 已知数列:1,2,4,7,11,16,…,其规律是相邻两项之差依次是1,2,3,4,5,…。 1534 求100以内最小的自然数n使得此数列的前n项之和大于800。 #include<stdio.h> main() {int s=0,n=0,t=1; while(1) { t=t+n; s=s+t; if(s>800) {break;printf("%d",s);} else n++; }
2
下面的程序是求[200,800]之间最大的20个素数之和。
14510
程序:
#include <stdio.h>
#include <math.h>
void main()
{ int k=800,sum=0, n=0, j, yes;
while((k>=200)&&(n<20))
{yes=1 ;
for(j=2; j<=sqrt(k); j++)
487
#include <conio.h>
#include <stdio.h>
#include <math.h>
main()
{int x,y,z,max=0;
for( x=1;x<230;x++)
{y=(int)((2000-9*x)/4);
z=abs(x-y);
if (9*x+4*y==2000 && y>0 && max<z) max=z;
相关文档
最新文档