Problem F: C語言習題 a!+b!+c!
Time Limit: 1 Sec Memory Limit: 128 MB
Description
求a!+b!+c!的值,用一個函數fac(n)求n!。a,b,c的值由主函數輸入,最終得到的值在主函數中輸出。
Input
a,b,c的值
Output
a!+b!+c!的值
Sample Input
1 2 3
Sample Output
9
HINT
主函數已給定如下,提交時不需要包含下述主函數
/* C代碼 */
int main()
{
int a,b,c,sum;
scanf("%d%d%d",&a,&b,&c);
sum=fac(a)+fac(b)+fac(c);
printf("%d\n",sum);
return 0;
}
/* C++代碼 */
int main()
{
int a,b,c,sum;
cin>>a>>b>>c;
sum=fac(a)+fac(b)+fac(c);
cout<<sum<<endl;
return 0;
}
參考答案:
#include <stdio.h>
#include <string.h>
int get_one_digit(double num,int n); /*函數聲明*/
int main()
{
double number;
int n;
int digit; /*第n位數字*/
scanf("%lf %d",&number,&n); /*輸入數據*/
digit=get_one_digit(number,n); /*調用查找第n位數字並將數字返回複製給digit*/
printf("%d\n",digit);
return 0;
}
int get_one_digit(double num,int n) /*函數聲明*/
{
long int a;
double b;
a=(int)num;
if(n>0)
{
b=num-a;
while(n>0)
{
b=b-(int)b;
b*=10;
n--;
}
return (int)b;
}
else
{
n=-n;
while(n>1)
{
a/=10;
n--;
}
return a%10;
}
}
int fac(int a)
{
int sum=1;
int i;
for(i=1;i<=a;i++)
{
sum*=i;
}
return sum;
}
int main()
{
int a,b,c,sum;
scanf("%d%d%d",&a,&b,&c);
sum=fac(a)+fac(b)+fac(c);
printf("%d\n",sum);
return 0;
}
編程軟件及視頻教程下載:點擊打開鏈接