天苜仙影


私信TA

用户名:2714425647

访问量:1905

签 名:

QID:TG92ZTA2

等  级
排  名 276
经  验 5677
参赛次数 9
文章发表 31
年  龄 18
在职情况 学生
学  校 中国地质大学(武汉)
专  业

  自我简介:

学过C语言,欢迎大家加我QQ交流

解题思路:

解答本题主要考虑到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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区