题目1:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
#include <stdio.h>
int main()
{
int i,j;
for(i=1;i<=1000;i++)
{
int sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum=sum+j;
}
}
if(sum==i)
{
printf("%d\n",i);
}
}
return 0;
}
题目2:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
#include <stdio.h>
int main()
{
int i;
double x=1.0,y=2.0,sum=0,tmp;
for(i=0;i<20;i++)
{
sum=sum+y/x;
tmp=x;
x=y;
y=tmp+y;
}
printf("the sum is:%lf\n",sum);
return 0;
}
题目3:求1+2!+3!+...+10!的和
#include <stdio.h>
int main()
{
int i,j=1,sum=0;
for(i=1;i<=10;i++)
{
j=j*i;
sum=sum+j;
}
printf("%d\n",sum);
return 0;
}
题目4:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
#include <stdio.h>
int main()
{
int i,a,b,c;
for(i=100;i<=999;i++)
{
a=i%10;
b=i/10%10;
c=i/100;
if(i==a*a*a+b*b*b+c*c*c)
{
printf("%d\n",i);
}
}
#include <stdio.h>
int main()
{
int i,j;
for(i=1;i<=1000;i++)
{
int sum=0;
for(j=1;j<i;j++)
{
if(i%j==0)
{
sum=sum+j;
}
}
if(sum==i)
{
printf("%d\n",i);
}
}
return 0;
}
题目2:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
#include <stdio.h>
int main()
{
int i;
double x=1.0,y=2.0,sum=0,tmp;
for(i=0;i<20;i++)
{
sum=sum+y/x;
tmp=x;
x=y;
y=tmp+y;
}
printf("the sum is:%lf\n",sum);
return 0;
}
题目3:求1+2!+3!+...+10!的和
#include <stdio.h>
int main()
{
int i,j=1,sum=0;
for(i=1;i<=10;i++)
{
j=j*i;
sum=sum+j;
}
printf("%d\n",sum);
return 0;
}
题目4:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
#include <stdio.h>
int main()
{
int i,a,b,c;
for(i=100;i<=999;i++)
{
a=i%10;
b=i/10%10;
c=i/100;
if(i==a*a*a+b*b*b+c*c*c)
{
printf("%d\n",i);
}
}
return 0;
}
题目5:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制
#include <stdio.h>
int main()
{
int i,a,n,x=0,sum=0;
printf("please input the number and geshu:\n");
scanf("%d%d",&a,&n);
for(i=0;i<n;i++)
{
x=x*10;
x=x+a;
sum=sum+x;
}
printf("%d\n",sum);
return 0;
}