C语言难题 求大神帮忙!!!(
刚学C语言不是很在行求各路大神解答感激不尽问题是:要求计算出N!的每个数位上数字的和,N的要求是你自己生日数字的和,比如你的生日为19930101,所以N=1+9+9+3...
刚学C语言 不是很在行 求各路大神解答 感激不尽
问题是:要求计算出 N!的每个数位上数字的和,N的要求是你自己生日数字的和,比如你的生日为19930101,所以N=1+9+9+3+0+1+0+1=24,然后N!=xxxxxxxxxxxxxxxx 比如等于123xxxxx789,然后最终要算出1+2+3+x........+7+8+9的和是多少。
我知道要用到数组的知识,但具体不知道怎么去编啊 求各位帮忙 感激不尽!谢谢 展开
问题是:要求计算出 N!的每个数位上数字的和,N的要求是你自己生日数字的和,比如你的生日为19930101,所以N=1+9+9+3+0+1+0+1=24,然后N!=xxxxxxxxxxxxxxxx 比如等于123xxxxx789,然后最终要算出1+2+3+x........+7+8+9的和是多少。
我知道要用到数组的知识,但具体不知道怎么去编啊 求各位帮忙 感激不尽!谢谢 展开
4个回答
展开全部
你好。代码如下
#include<stdio.h>
int main(void)
{
char ca[30] = "";
char cb[20] = "";
printf("input a string:\n");
scanf("%s",ca);
char *p = ca;
int sum = 0,s = 1;
while(*p != '\0')
{
sum += *p - '0';
p++;
}
//printf("sum === %d\n",sum);
int i = 0;
for(i = 1 ; i <=sum; i++)
{
s *= i;
}
sprintf(cb, "%d", s);
//printf("s ==== %d\n",s);
p = cb;
sum = 0;
while(*p != '\0')
{
sum += *p - '0';
p++;
}
printf("%d\n",sum);
return 0;
}
#include<stdio.h>
int main(void)
{
char ca[30] = "";
char cb[20] = "";
printf("input a string:\n");
scanf("%s",ca);
char *p = ca;
int sum = 0,s = 1;
while(*p != '\0')
{
sum += *p - '0';
p++;
}
//printf("sum === %d\n",sum);
int i = 0;
for(i = 1 ; i <=sum; i++)
{
s *= i;
}
sprintf(cb, "%d", s);
//printf("s ==== %d\n",s);
p = cb;
sum = 0;
while(*p != '\0')
{
sum += *p - '0';
p++;
}
printf("%d\n",sum);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个N的数值比较大啊采用double类型
double N;
N = GetN_FromUrBirthday();
//不防设N都是两位数
a1 = N%10;//十位
a2 = N - 10*a1;//个位
然后会了吧?
double N;
N = GetN_FromUrBirthday();
//不防设N都是两位数
a1 = N%10;//十位
a2 = N - 10*a1;//个位
然后会了吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
main(){
int i,sum=0,result,cout,temp=0;
printf("输入出生日期,以#结束!");
while(i!='#'){
scanf("%d",&i);
sum = sum + i;
}//得到日期和各个数相加的和
while(sum!=0){
sum *= sum--;
}//得到阶乘
result = sum;
for(i = 0;result!=0; i++)
{
result = result/10;
}
result = sum;
for(i = i - 1; i > 0; i--)
{
for(cout = i-1 ;cout>0;cout--)
{
result = result/10;
}
temp += result;
result = result - (int)pow(10,i-1);
}
printf("最后结果为%d",temp);
}
main(){
int i,sum=0,result,cout,temp=0;
printf("输入出生日期,以#结束!");
while(i!='#'){
scanf("%d",&i);
sum = sum + i;
}//得到日期和各个数相加的和
while(sum!=0){
sum *= sum--;
}//得到阶乘
result = sum;
for(i = 0;result!=0; i++)
{
result = result/10;
}
result = sum;
for(i = i - 1; i > 0; i--)
{
for(cout = i-1 ;cout>0;cout--)
{
result = result/10;
}
temp += result;
result = result - (int)pow(10,i-1);
}
printf("最后结果为%d",temp);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询