发布网友 发布时间:2022-04-21 05:54
共5个回答
热心网友 时间:2022-06-18 08:25
代码如下:
/*
* 输入一个三位数,计算它的各位数字阶乘之和
*/
#include <stdio.h>
// 计算 a 的阶乘
int fac(int a)
{
if (a==0)
return 1;
else
return a*fac(a-1);
}
//主函数
int main()
{
int num;
int a;
int sum = 0;
do {
printf("请输入一个三位数:");
scanf("%d", &num);
} while (num<100 || num>999);
while (num>0) {
a = num%10;
num = (num-a)/10;
sum += fac(a);
}
printf("各位数字阶乘之和为 %d\n", sum);
return 0;
}
运行程序,输入与输出如下:
请输入一个三位数:123
各位数字阶乘之和为 9
热心网友 时间:2022-06-18 08:26
#include<stdio.h>
int jc(int n)//实现计算出n的阶乘
{
int p=1;
int i;
for(i=2;i<=n;i++)
p*=i;
return p;
}
void main()
{
int a;
int g,s,b;
int sum=0;
printf("请输入一个三位正整数:");
scanf("%d",&a);
//输入完三位数后进行三位数的分解
g=a%10;
s=a/10%10;
b=a/100;
sum+=jc(g)+jc(s)+jc(b);
printf("%d!+%d!+%d!=%d\n",g,s,b,sum);
}
热心网友 时间:2022-06-18 08:26
#include <stdio.h>
int factorial(int n){
if (n == 0)
return 1;
else
return n*factorial(n-1);
}
int get(int n){
int bw = 0, gw = 0, sw = 0;
bw = n/100;
gw = (n%100)/10;
sw = n/10;
sum = factorial(bw) + factorial(gw) + factorial(sw);
return sum;
}
int main()
{
int i;
printf("请输入三位数\n");
scanf("%d", &i);
if (i < 100 || i >=1000) {
printf("输入错误\n");
return -1;
}
sum = get (i);
printf ("这个三位数%d, 各个位数阶乘之和是%d\n", i, sum);
return 0;
}
热心网友 时间:2022-06-18 08:27
#include<stdio.h>
int main()
{ int x,x1,x2,x3,sum=0;
printf("输入三位正整数:");
scanf("%3d",&x);
x1=x%10;
x3=x/100;
x2=x/10%10;
sum=fun(x1)+fun(x2)+fun(x3);
printf("x=%d sum=%d\n",x,sum);
system("pause");
}
int fun(int n)
{ int i,s=1;
for(i=1;i<=n;i++)
s*=i;
return s;
}
热心网友 时间:2022-06-18 08:27
#include <stdio.h>
int main ()
{
int a,b1,b2,b3,c1,c2,c3,i;
c1=c2=c3=1;
scanf("%d",&a);
b3=a%10;
b2=a/10%10;
b1=a/100;
for(i=1;i<=b3;i++){c3=c3*i;}
for(i=1;i<=b2;i++){c2=c2*i;}
for(i=1;i<=b1;i++){c1=c1*i;}
printf("%d\n",c1+c2+c3);
return 0;
}