天苜仙影


私信TA

用户名:2714425647

访问量:2433

签 名:

QID:TG92ZTA2

等  级
排  名 278
经  验 5741
参赛次数 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 人评分

  评论区

  • «
  • »