zoukankan      html  css  js  c++  java
  • 数列之和

    出处:桂电oj,网址:http://onlinejudge.guet.edu.cn/guetoj/problem/1020.html
    有这样一类数列,例如, 2, 22, 222, 2222, 22222, 222222 3, 33, 333, 3333, 33333, 333333, 333333等 其中每个数的各位数上的值相同,例如,2,3,可以用M来表示 且每个数列所包含的数的个数不相同,可以用N来表示 你需要编写程序完成如下形式的数列求和 其中数列中每个数各位数的值M,以及数列所包含的数的个数N由键盘输入 求有M和N所决定的数列的和,并将其和输出

    Input

    输入包含2个数,M和N
    其中M表示数列中每个数各位数上的值,N表示数列包含的数的个数
    我们确保测试时( 0 < M < 10, 0 < N < 15 )

    Output

    输出由M和N所确定的数列之和

    Sample Input

    2 5
    
    3 7

    Sample Output

    24690
    
    3703701
    //-------------------------------------------------------------
    //当输入的数为2 11 时,一般的的int double的存不了的,要用数组,
    //思路:
    /*       2
    *       22
    *      222
    *     2222
    *      ...
    *+22222222
    *————————————
    *= ?
    *
    */
    //各位数相加,进位与十位相加...
       
    #include <iostream>
    using namespace std;
    void shulie_sum(int a,int b);
    int main()
    {
        int M,N;
        cin >> M >> N;
        shulie_sum(M,N);
        return 0;
    }
    void shulie_sum(int a,int b)
    {
        int c = 0;int sum[16] = {0};
        int s = 0;
        for (int i = 0; i < 16; i++)
        {
           if (b == 0)
               break;
           sum[15-i] = (a*b) % 10 + s;//个位相加
           if ((sum [15-i]) >= 10 && b != 1)//个位大于=10,进位
           {
                sum [15-i] = ((a*b)%10 + s )% 10;
           }
           s = (s + (a*b) ) / 10;
           b--;
        }
        for (int i = 0; i < 16; )
        {
            if (sum[i] == 0)
            {
                i++;
            }
            else
                for (int j = i; j < 16;j++)
            {
                cout << sum [i];
                i++;
            }
        }
    }
  • 相关阅读:
    SCCM 2007 部署软件更新
    WPF开发工具
    体验Windows Live Writer写Blog
    图像的灰度和黑白处理算法
    很有用的Sql总结转载
    WPF 体验导航窗口
    WPF 一周练
    WPF 图表
    也说Linq 分组
    WPF 体验对话框调用
  • 原文地址:https://www.cnblogs.com/ediszhao/p/3481449.html
Copyright © 2011-2022 走看看