2016.3.7 16.14复习篇之三(蓝桥杯恶补)
题目1:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
找出1000以内的所有完数。
#include<stdio.h>
int main()
{
int i,j,k,sum;
for(i=1;i<1000;i++)
{
sum=0;
for(j=1;j<=i/2;j++)//最大的因子就是此数的一半
if(i%j==0)
{
sum=sum+j;
}
if(sum==i)/*这个判断很重要,本人就犯错误了之前,就是24 也是了,就是没有完成所有因子sum,就判断i= =sum ?然后就出错了,题目要求的是所有的因子!!*/
{
printf("%d是完数",i);
for(j=1;j<=i/2;j++)//这段程序用来输出因子,比赛时可以不输出,除非要求
if(i%j==0)
{
printf("%5d",j);
}
printf("\n");
}
}
return 0;
}题目2:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
第10次落地时,共经过多少米?第10次反弹多高?
#include<stdio.h>
#define max 10
int main()
{
floathigh,newhigh,num,sum;
scanf("%f",&high);
sum=high;num=1;
for(num=1;num<max;num++)
{
newhigh=high/2;
high=high/2;
sum+=newhigh*2;
printf("%f\n",sum);
}
return0;
}#include<stdio.h>
main()
{
float sn=100.0,hn=sn/2;
int n;
for(n=2;n<=10;n++)
{
sn=sn+2*hn;
hn=hn/2;
}
printf("thetotal of road is %f\n",sn);
printf("thetenth is %f meter\n",hn);
return0;
}#include<stdio.h>
#define max 10
int main()
{
float high,newhigh,sum;
int num;
scanf("%f",&high);
sum=high;
for(num=0;num<max;num++)
{
newhigh=high/2;
high=high/2;
sum+=newhigh*2;
printf("第%d次高度%f\t总高度%f\n",num+1,high,sum);
}
return 0;
}最终版:
#include<stdio.h>
#define max 10
int main()
{
float high,newhigh,sum;
int num;
// printf("输入初始高度\n");
scanf("%f",&high);
sum=high;
for(num=0;num<max;num++)
{
newhigh=high/2;
high=high/2;
sum+=newhigh*2;
printf("%f,%f\n",high,sum);
//printf("第%d次高度%f\t总高度%f\n",num+1,high,sum);
}
return 0;
}题目3:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
#include<stdio.h>
#define max 10
int main()
{
int i,j;
i=1;
for(j=1;j<=10;j++)
{
i=((i+1)*2);
}
printf("%d",i);
return 0;
}
不为失败找原因,要为成功找方法!
浙公网安备 33010602011771号