zoukankan      html  css  js  c++  java
  • 九度oj 题目1051:数字阶梯求和

    题目描述:

    给定a和n,计算a+aa+aaa+a...a(n个a)的和。

    输入:

    测试数据有多组,输入a,n(1<=a<=9,1<=n<=100)。

    输出:

    对于每组输入,请输出结果。

    样例输入:
    1 10
    样例输出:
    1234567900

    这道题的难点在于处理很长很长的数的求和
     1 #include <cstdio>
     2 #include <cstdlib>
     3 #include <cstring>
     4 #include <string>
     5 #include <cmath>
     6 #define MAX 302
     7 
     8 int sum[MAX];
     9 int temp[MAX];
    10 
    11 void calSum() {
    12     int ci = 0;
    13    for(int i = 0; i < MAX;i++) {
    14         int ben = (sum[i] + temp[i] + ci) % 10;
    15         ci = (sum[i] + temp[i] + ci)/10;
    16         sum[i] = ben;
    17    } 
    18 }
    19 int main(int argc, char const *argv[])
    20 {
    21     int a, n;
    22     while(scanf("%d %d",&a,&n) != EOF) {
    23         for(int i = 0; i < MAX; i++) {
    24             sum[i] = 0;
    25         }
    26         for(int i = 1; i <= n; i++) {
    27             for(int j = 0; j < MAX; j++) {
    28                 temp[j] = 0;
    29             }
    30             for(int j = 0; j < i; j++) {
    31                 temp[j] = a;
    32             }
    33             calSum();
    34         }
    35         bool isBegin = false;
    36         for(int i = MAX; i >= 0; i--) {
    37             if(isBegin == false && sum[i] != 0) {
    38                 isBegin = true;
    39                 printf("%d",sum[i]);
    40             }
    41             else if(isBegin) {
    42                 printf("%d",sum[i]);
    43             }
    44         }
    45         printf("
    ");
    46     }
    47     return 0;
    48 }


  • 相关阅读:
    初入水:vector
    Sort Colors
    Palindrome Partitioning II
    Search for a Range
    Container With Most Water
    Palindrome Partitioning
    Longest Consecutive Sequence
    简单写了一个堆排序
    Best Time to Buy and Sell Stock III
    4-7
  • 原文地址:https://www.cnblogs.com/jasonJie/p/5692584.html
Copyright © 2011-2022 走看看