一.docx
- 文档编号:7980135
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:17
- 大小:17.74KB
一.docx
《一.docx》由会员分享,可在线阅读,更多相关《一.docx(17页珍藏版)》请在冰豆网上搜索。
一
(一)
1.编写程序,求在四位数的奇数中,所有各位数字之和是25的倍数的数的和。
#include“stdio.h”
main()
{intm,n,t,s=0;
for(n=1001;n<=9999;n+=2)
{t=2*n+1;
m=t/1000+t/100%10+t/10%10+t%10;
if(m%25==0)
s=s+t:
}
printf(“%d”,s)
}
输出:
1298515
2.设有十进制数字a,b,c,d和e,它们满足下列式子:
abcd*e=bcde(a不等于0,e不等于0或1),求满足上述条件的最大四位数abcd的值。
#include“stdio.h”
main()
{
inti,n,t,max=0;
for(n=1000;n<=9999;n++)
for(i=2;i<=9;i++)
{if(n*i==n%*10+i)
{t=n:
if(t>max)
max=t;
}
}
printf(“%d”,max);
}
输出:
1999
3.已知f(n)=f(n-1)+2f(n-2)-5f(n-3),f(0)=1,f
(1)=2,f
(2)=3,求f(0)+f
(1)+…f(30)。
signedlongF(intn)
{
singedlongr;
if(n==0)r=1;
elseif(n==1)r=2;
elseif(n==2)r=3;
else
r=F(n-1)+2*F(n-2)-5*F(n-3);
returnr;
}
#include“stdio,h”
main()
{
singedlongn=30,s=0;
intI;
for(i=0;i<=30;i++)
s+=F(i);
printf(“%ld”,s);
}
输出:
-750874
(二)
1.求在四位数的奇数中,所有各位数字之和是25的倍数的数的和。
#include“stdio.h”
main()
{intm,n,t,s=0;
for(n=1001;n<=9999;n+=2)
{t=2*n+1;
m=t/1000+t/100%10+t/10%10+t%10;
if(m%25==0)
s=s+t:
}
printf(“%d”,s)
}
输出:
1298515
2.一个数如果刚好与它所有的因子之和相等,则称该数为一个"完数",如:
6=1+2+3,则6就是一个完数。
求出1000以内的完数的个数
#include“stdio.h”
main()
Inti,j,s,t=0;
for(i=1;i<=1000;i++)
{for(j=1;s=0;j
If(i%j==0)
{s=s=j:
if(s==i)
t++;
}}
printf(“%d\n”,t):
}
输出:
3
3.已知f(0)=f
(1)=1,f
(2)=0,f(n)=f(n-1)-2*f(n-2)+f(n-3)(n>2),求f(0)+f
(1)+……+f(50)的值。
#include“stdio.h”
doublef(intn)
{
doubler;
If(n==n||n==1)r=1;
elseif(n=2)r=0;
else
r=F(n-1)-2*F(n-2)+F(n-3);
}
#include“stdio.h”
main()
{
doubles=0:
IntI;
for(i=0;i<=50;i++)
s+=F(i);
printf(“%f”,s);
}
(三)
1.当m的值为50时,计算下列公式之值:
t=1+1/2^2+1/3^2+…+1/m^2,(按四舍五入的方式精确到小数点后第四位)。
#include“stdio.h”)
main()
{
floatt,sum=1.0;
inti,m;
Sscanf(“%d”,&m);
for(i=2;i<=m;i++)
{
t=1.0/(i*i);
sum+=t;
}
printf(“%.4f\n”,sum);
}
输出:
1.6251
2.求[300,800]范围内的素数的个数。
{
main()
{
inti,j,n=0;
for(i=300;i<=800;i++)
{for(j=2;j j++) if(i%j==0) break; if(j>=i)n++;} printf(“%d\n”,n); } 输出: 77 3.求500以内(含500)能被5或9整除的所有自然数的倒数之和。 按四舍五入的方式精确到小数点后第二位。 #include“stdio.h” main() { inti,s=0; for(i=1;i<=500;i++) for(i%5==0||i%9==0) {t=1.0/i; s+=t; } printf(“%.2f\n”,s); } 输出: 1.48 (四) 1.求[1,800]之间能被3和8整除的数的个数。 #include“stdio.h”n main() {inti,t=0; for(i=1,i<=800;i++) if(i%3==0&&i%8==0) t+=1; printf(“%d\n”,t); } 输出: 33 2.已知一个数列的前三项为0,0,1,以后各项都是其相邻的前三项之和,求该数列前30项之和。 #include“stdio.h” doubleF(intn) { intr; if(n=0||n=1) r=0; elseif(n=2) r=1; else r=F(n-3)+F(n-2)+F(n-1); returnr; } main() { inti; doubles=1; for(i=3;i<=29: i++) s==F(i); printf(“%f\n”,s) } 输出: 18947744 3.计算并输出1+1/3+1/5+...+1/99的值,结果保留2位小数。 #include“stdio.h” main() { doubles=1.0,t; inti; for(i=2;i<=50;i++) s+=t; } printf(“%.2f\n”,s); } 输出: 2.94 (五) 1.计算并输出给定整数856的所有因子(不包括1与自身)之和。 #include“stdio.h” main() {inti,s=0; for(i=2;i<=856: i++) if(856%i==0) s+=i; printf(“%d\n”,s); } 输出: 763 2.计算在[0,60]的范围内有多少个数,其每位数的乘积大于每位数的和。 #include“stdio.h” main() { inta,b,i,t=0,s=0; for(i=0;i<=9;i++) { a=0; b=0; if((a*b)>(a+b)) t++; } for(i=10;i<=60;i++) { a=i/10; b=i%10; if((a&b)>(a+b)) s++; } printf(“%d\n”,t+s); } 输出: 31 3.求[2000,20000]之间同时满足除以7余5,除以5余3,除以3余1的整数的个数。 #include“stdio.h” main() { inti,t=0; for(i=2000;i<=20000;i++) if((i%7==5)&&(i%5==3)&&(i%3=1)) t++; printf(“%d\n”,t); } 输出: 171 (六) 1.一个数如果刚好与它所有的真因子之和相等,则称该数为一个“完数”,如: 6=1+2+3,则6就是一个完数。 求出[200,500]之间所有的完数之和。 #include“stdio.h” main() { inti,j,s,t=0; for(i=200;i<=500;i++) {s=0; for(j=1;j if(i%j==0) {s=s+j; if(i==s) t++; } } printf(“%d\n”,t); } 输出: 496 2.求出以下分数序列的前35之和,2/1,3/2,5/3,8/5,13/8,21/13,......给出程序结果(保留6位小数)。 #include“stdio.h” main() { doublea=1.0,b=2.0,s=0,t,m; inti; for(i=1;i<=35;i++) { t=b/a; s+=t; m=b; b=a+b; a=m; } printf(“%.6f\n”,s); } 输出: 56.930771 3.求四位数的偶数中,所有各位数字之和是15的倍数的数的和。 #include“stdio.h” main() { intm,n,t,s=0; for(n=500;n<=4999;n++) { t=2*n; m=t/1000+t/100%10+t/10%10+t%100; if(m%15==0) s+=t; } printf(“%d\n”,s); } 输出: 1592376 (七) 1.把一张一元钞票,换成一分.二分和五分硬币,每种至少11枚,问有多少种方案? #include“stdio.h” main() { intx,y,z,n=0; for(x=11;x<=23;x++) for(y=11;y<=34;y++) for(z=11;z<=67;z+=) if(x*1+2*y+z*5) n++; printf(“%d\n”,n); } 输出: 13 2.求出[1,5000]之间的能被7整除的数之和。 #include“stdio.h” main() { inti,s=0; for(i=7;i<=5000;i++) if(i%7==0) s+=i; printf(“%d\n”,s); } 输出: 1786785 3.所谓“同构数”是指这样一个数,它出现在它的平方数的右侧,例如5的平方是25,25的平方是625,故5和25都是同构数,求[2,1000]之间有多少个同构数。 #include“stdio.h” #include“math.h” main() { intk,n=0; for(k=1;k<=1000;k++) { intm=0,x=k; while(x>0) {x=x/10; m++;} if(k==(k*k)%power(10,m)) n++; } printf(“%d\n”,n); return0; } 输出: 6 (八) 1.一个数如果刚好与小于它的所有因子之和相等,则称该数为一个“完数”,如: 6=1+2+3,则6就是一个完数。 求出400以内的所有完数之和。 #include“stdio.h” main() { inti,j,s,t=0; for(i=1;i<=400;i++) {s=0; for(j=i;j if(i%j==0) {s=s+j; if(s==i) t=t+i; } } printf(“%d\n”,t); } 输出: 34 2.斐波那契数列的前二项是1,1,以后每一项都是前面两项之和。 求前30个斐波那契数之和。 #include“stdio.h” doubleF(intn) { intr; if(n=1||n=2) r=1; elseif(n=2) r=1; else r=F(n-2)+F(n-1); returnr; } main() { doubles=1; inti; for(i=1;i<=30: i++) s+=F(i); printf(“%f\n”,s) } 输出: 2178308 3.求出100到500之间同时满足除5余4和除7余2条件的数的个数。 #include“stdio.h” main() { inti,s=0; for(i=100;i<=500;i++) if(i%5==4)&&(i%7==2) s++; printf(“%d\n”,s); } 输出: 12 (九) 1.求出[1,4000]之间的能被5整除的前若干个偶数之和,当和值大于400时退出并输出和值。 #include“stdio.h” main() { inti,s=0; for(i=2;i<=4000;i++) { while(s<=400) { if(i%5==0) s+=i; } } printf(“%\n”,s); } 输出: 450 2.求满足下列条件的所有四位数ABCD的个数,该四位数是18的倍数,且D=6,A+B=B+C,即第1位数加上第2位数等于第2位数加上第3位数。 #include“stdio.h” main() { inti,a,b,c,d,s=0; for(i=1000,i<=9999;i++) { a=i/1000; b=i/100%10; c=i%100/10; d=i%10; if(d==6&&a+b==c+b) s++; } printf(“%d\n”,s): } 输出: 10 3.已知f(0)=f (1)=1,f (2)=0,f(n)=f(n-1)-2*f(n-2)+f(n-3)(n>2),求f(0)到f(50)中的最大值。 #include“stdio.h” doubleF(intn) { intr; if(n=0||n=1) r=1; elseif(n=2) r=0; else r=F(n-1)-2*F(n-2)+F(n-3); } returnr; main() { inti,t,max=1; for(i=0;i<=50;i++) {t=F(i); if(t>max) max=t; printf(“%f”,max); } 输出: 598325 (十) 1.已知: S=2+4+8+16+32+…,求S不大于1500的最大值。 #include“stdio.h” main() { inti,s=0,max=0; while(s<=1500) { i=2; s+=i; if(s>=max) max=s-j; } printf(“%d\n”,max); } 输出: 1022 2.已知数列: f(0)=1,f (1)=2,f (2)=3,f(n)=f(n-1)+2f(n-2)-5f(n-3)(n>3),求f(0)+f (1)+? ? ? +f(30)。 #include“stdio.h” doublef(intn) { doubler; if(n==n||n==1)r=1; elseif(n=2)r=0; else r=F(n-1)-2*F(n-2)+F(n-3); } #include“stdio.h” main() { doubles=0: inti; for(i=0;i<=50;i++) s+=F(i); printf(“%f”,s); } 输出: -750874 3.求出[340,840]内至少有两个数字相同的数的个数。 #include“stdio.h” main() { inti,a,b,c,s=0; for(i=340;i<=840: i++) {a=i/100; b=i%100/10; c=i%10; if(a==b||b==c||c==a||(a==b&&b==c) s++; } printf(“%d\n”,s); } 输出: 132
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- docx