题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。
#include<stdio.h>
#define N 1000
int main()
{int i,j,k,n,sum;int a[256];for(i=2;i<=N;i++){sum=a[0]=1;k=0;for(j=2;j<=(i/2);j++){if(i%j==0){sum+=j;a[++k]=j;}}if(i==sum){printf("%d=%d",i,a[0]);for(n=1;n<=k;n++)printf("+%d",a[n]);printf("\n");}}return 0;
}
输出结果:
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
程序分析:见下面注释。
程序源代码:
#include<stdio.h>
int main()
{float h,s;h=s=100;h=h/2; //第一次反弹高度for(int i=2;i<=10;i++){s=s+2*h;h=h/2;}printf("第10次落地时,共经过%f米,第10次反弹高%f米\n",s,h);return 0;
}