ylhhh 发表于 2022-3-22 16:21:09

多项求和

【问题描述】求s=a+aa+aaa+aaaa+aaaaa+aa...a的值,其中a是一个数字,表示s由几个数相加。例如当a=3时,s等于三个数相加的和,即s=3+33+333=369。

【输入形式】从键盘输入一个正整数a。

【输出形式】输出此时s的值。

【样例输入】3

【样例输出】369

大马强 发表于 2022-3-22 16:57:00


#include <stdio.h>
#include <stdlib.h>

int main()
{
   
    int n, i=0,sum = 0, temp;
        printf("请输入一个整数:") ;
        scanf("%d",&n);
        temp = n;
        for(i=0;i<temp;i++)
        {
                printf("%d", n);
                printf(" + ");
                sum+=n;
                n = n*10+temp;       
        }
        printf(" = %d",sum);
       
               
    return 0;
}

大马强 发表于 2022-3-22 16:59:55

请输入一个整数:3
3 + 33 + 333 += 369
--------------------------------
Process exited after 1.281 seconds with return value 0
请按任意键继续. . .

请输入一个整数:4
4 + 44 + 444 + 4444 += 4936
--------------------------------
Process exited after 0.7877 seconds with return value 0
请按任意键继续. . .

阿萨德按时 发表于 2022-3-22 17:01:15

a = int(input())
t = a
s = 0
p = 10

for i in range(0,a):
    s += t
    t += a*p
    p *= 10
print(s)

isdkz 发表于 2022-3-22 18:46:25

num = input('请输入一个正整数:')
print(sum(map(lambda x:int(num * x), range(1, int(num) + 1))))

ylhhh 发表于 2022-3-22 20:47:29

阿萨德按时 发表于 2022-3-22 17:01


对于10以上的数字就不行了

阿萨德按时 发表于 2022-3-23 08:55:16

本帖最后由 阿萨德按时 于 2022-3-23 09:31 编辑

ylhhh 发表于 2022-3-22 20:47
对于10以上的数字就不行了

楼上大佬正解,或者这样a = input()

b = []

for i in range(1,int(a)+1):
    b.append(int(i*a))

print(sum(b))
页: [1]
查看完整版本: 多项求和