欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

习题2.3 数列求和-加强版 (20分)

程序员文章站 2022-03-13 12:57:41
...

习题2.3 数列求和-加强版 (20分)

首先此题不能用传统的方法来做即:累加所有数字,这样会超时。
故自己模拟加法进位的形式来计算,每一位存在数组里,列:

input: 3  6
        6
  +    66
  +   666
 ----------
 =  ? ? ?
  
#include <stdio.h>
#include <stdlib.h>

#define maxSize 1000000
int main(){
    int A,N,i,sum=0,flag=0;
    scanf("%d %d",&A,&N);
    int minSize = maxSize;
    int arr[maxSize];
    if(N==0){
        printf("0");
        return 0;
    }
    for(i=0;i<N;i++){
        arr[--minSize] = ((N-i)*A+flag)%10;
        flag = ((N-i)*A+flag)/10;
    }
    if(flag!=0){
        arr[--minSize] = flag;
    }
    for(i=minSize;i<maxSize;i++){
        printf("%d",arr[i]);
    }
    

}