一.docx
《一.docx》由会员分享,可在线阅读,更多相关《一.docx(17页珍藏版)》请在冰豆网上搜索。
![一.docx](https://file1.bdocx.com/fileroot1/2023-1/27/30c494b7-2d41-4520-928f-a8a2c8f5b652/30c494b7-2d41-4520-928f-a8a2c8f5b6521.gif)
一
(一)
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;jj++)
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