一.docx

上传人:b****6 文档编号:7980135 上传时间:2023-01-27 格式:DOCX 页数:17 大小:17.74KB
下载 相关 举报
一.docx_第1页
第1页 / 共17页
一.docx_第2页
第2页 / 共17页
一.docx_第3页
第3页 / 共17页
一.docx_第4页
第4页 / 共17页
一.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

一.docx

《一.docx》由会员分享,可在线阅读,更多相关《一.docx(17页珍藏版)》请在冰豆网上搜索。

一.docx

(一)

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1