业务部副主管岗位职责:C语言的问题

来源:百度文库 编辑:中科新闻网 时间:2024/04/28 11:19:13
1 求1+2+3+.....+100的和
求1*2*3*.....*100的和
求1*2+1*2+3+1*2*3*3+.....n的和

2 打印出所有的水仙花数,所谓水仙花数是指一个3位数,其各位数字立方和等于该数本身,如153是一个水仙花数为153=1*1*1+5*5*5+3*3*3
如果能做出来我就不在这发了
555555555 可惜做不出来

1 求1+2+3+.....+100的和
求1*2*3*.....*100的和
求1*2+1*2*3+1*2*3*4+.....n的和
main()
{long sum1,sum2,sum3,sum0;
int i,j;
sum1=sum3=0;
sum2=1;
for(i=1;i<=100;i++)
{sum1=sum1+i;
sum2=sum2*i;
sum0=1;
for(j=1;j<=i+1;j++)
sum0=sum0*j;
sum3=sum3+sum0;}
printf("%ld %ld %ld",sum1,sum2,sum3);
getch();}
2 打印出所有的水仙花数
main()
{int i,a,b,c;
for(i=100;i<=999;i++)
{a=i/100;
b=i%100/10;
c=i%10;
if(i==a*a*a+b*b*b+c*c*c) printf("%5d",i);}
getch();}

以下是水仙花数的源程序:
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
#include "stdio.h"
#include "conio.h"
main()
{
int i,j,k,n;
printf("'water flower'number is:");
for(n=100;n<1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
printf("%-5d",n);
}
getch();
}

剩下的那个题太简单了(你是没学过C语言?)
用一个for循环,里面用sum=sum+i;输出便可。其余两个同理,只不过改变运算符号便可。
得加油学呀,楼主!

我只帮你做第一题,只它没时间哦

----------
#include<stdio.h>
int i,s=0;
for(i=1;i<=100;i++)
s+=i;
printf("%d",s);

sunlei110s你的计算有问题啊;
其实100!已经远远超出long int的表示范围了,你的计算已经溢出了,不过一般人都喜欢用一个字符串数组来存放n!的结果;给各源程序 :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void jiecheng(int n)
{
int a[50000]; //存放结果的数组
int trans=0; //进行转换的变量
int weishu=1; //结果的位数
a[0]=1;
int temp; //存放临时数据
for(int i=2;i<= n; ++i){
for(int j=1, trans=0; j<=weishu; ++j){
temp=a[j-1]*i+trans;
a[j-1]=temp%10;
trans=temp/10;
}
while(trans){
weishu++;
a[weishu-1]=trans%10;
trans/=10; }
}
for(i=weishu;i>=1;--i)
printf("%d",a[i-1]);
printf("\n");

}
void main()
{ int i;
printf("-1为退出!\n");
printf("输入N:");
scanf("%d",&i);
while(i+1)
{
printf("%d!=",i);
jiecheng(i);
printf("-1为退出!\n");
printf("输入N:");
scanf("%d",&i);
}

}

我帮你写第二个自己套上主函数
int i,s=1;
for(i=1;i<=100;i++)
s=s*i;
printf("%d",s);

课程设计还是自己做的好……~ 何况这么简单~