Jayden


私信TA

用户名:dotcpp0731360

访问量:508

签 名:

等  级
排  名 2146
经  验 2432
参赛次数 0
文章发表 12
年  龄 0
在职情况 学生
学  校
专  业 数据科学与大数据技术

  自我简介:

解题思路:  

题目:求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字,为2。 例如,n=5时=2+22+222+2222+22222,n由键盘输入。

 若n = 4 ,  Sn=   2 +22 + 222 +2222  = 2468

 我们可由上式发现如下规律:(以n = 4为例)

                                    2 +

                                  22 +

                                222 +

                              2222 = Sn

  n=4时,我们个位的一整列来看,个位有4个2,十位有3个2,百位有2个2……,个位相加得结果为2 * 4 = 8,十位结果为2 * (4 - 1) = 6,百位结果为2 * (4 - 2) = 4……,我们可以试着加一下,Sn = 8 + 60 + 400 + 2000 = 2468,每一项(代码中用item表示)通式为:2 * n * pow(10, i)。


注意事项: 

 1、首先确定n的值,然后for循环n次就可以了。

 2、i的范围不能随着n的变化的改变而改变,要有一个固定值range。


参考代码:

#include#includeint main()
{
    int n = 0, Sn = 0, item = 0;     //Sn是指求和符号,item是指每一项的数值
    scanf("%d", &n);
    int range = n;      //由于下面for循环语句中有n--是不断变化的,需要一个固定范围range来决定i的遍历次数
    for(int i = 0;  i < range;  i ++)
        {
            item = 2 * n * pow(10, i);
            Sn += item;
            n --;
        }
    printf("%d", Sn);
    return 0 ;
}


 

0.0分

1 人评分

  评论区

欢迎各位大佬来评论区交流!
2024-02-22 14:04:34
  • «
  • 1
  • »