解题思路:
解答本题主要考虑到1977!会超出long long int ,常规的运算是无法完成的,我们用数组来储存每一位数。
一个数字乘以一个数,想当与将这个数的每一位都乘以这个数,然后从后向前对每一位进行进位操作
注意记录数据的长度,并且保存下来
注意事项:
参考代码:
#include<stdio.h>
int main(void)
{
int i;
int j;
int a[10000]={0};
int length=1;
a[0]=1;
for(i=1;i<=1977;i++)
{
for(j=0;j<length;j++)
{
a[j]=a[j]*i;
}
for(j=0;j<length-1;j++)
{
a[j+1]+=a[j]/10;
a[j]=a[j]%10;
}
for(j=length-1;;j++)
{
if(a[j]/10)
{
a[j+1]+=a[j]/10;
a[j]=a[j]%10;
length++;
}
else
break;
}
}
for(i=0;i<length;i++)
printf("%d",a[length-i-1]);
return 0;
}
0.0分
0 人评分
母牛的故事 (C语言代码)浏览:744 |
简单的a+b (C语言代码)浏览:760 |
剪刀石头布 (C语言代码)不知道怎么直接在scanf中用枚举变量浏览:1317 |
Pascal三角 (C语言代码)格式错误浏览:521 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:718 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:687 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:338 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:506 |
文科生的悲哀 (C语言代码)浏览:1401 |
数对 (C语言代码)浏览:702 |