解题思路:
解答本题主要考虑到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语言代码)浏览:499 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:686 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:686 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:593 |
用筛法求之N内的素数。 (C++代码)浏览:754 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:904 |
1124题解浏览:630 |
陈教主的三角形 (C语言代码)浏览:1196 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:985 |
输入输出格式练习 (C语言代码)浏览:773 |