带你刷 · C语言 | Sn=a+aa+aaa+aaaa+aaaaa+...的前n项之和

简介: 问:求`Sn=a+aa+aaa+aaaa+aaaaa+...`的前`n`项之和,其中`a`是一个数字

在这里插入图片描述
啊我摔倒了..有没有人扶我起来学习....


@TOC


题目

问:求Sn=a+aa+aaa+aaaa+aaaaa+...的前n项之和,其中a是一个数字

输入描述:
输入一个整数a,表示每项的每一位数;输入一个整数n,表示有n

输出描述:
n项之和

示例
输入
2 5

输出
24690(2+22+222+2222+22222)


解法

1. 确定思路

  • 我们就拿示例来分析分析
  • 首先,a不管输入是什么,在输入那一刻就已经决定了
  • n表示一共有n项,而且都是一位数开始,到n位数结束
  • 再画个图,可以发现,后一个数都是前一个数的十倍再加上前一个数(10 * a + a)

在这里插入图片描述

2. 编写代码

  • 根据上述的思路,n表示有n项,那我们就来个循环,循环一次就多一个项
scanf("%d%d", &a, &n);
    for (i = 0; i < n; i++)
    {
        //......
    }
  • 既然后一个数都是前一个数的十倍再加上前一个数,直接上(10 * a + a)。然后每一次循环都要变化一次,所以就用a来储存起来
    for (i = 0; i < n; i++)
    {
        tmp = tmp * 10 + a;
        //......
    }
  • 再根据题目,需要求前n项之和,好办,定义一个sum
    for (i = 0; i < n; i++)
    {
        tmp = tmp * 10 + a;
        sum += tmp;
    }
  • 这样就设计出来了~我们测试一下
附上整个代码:输入 2 5
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
    int a = 0;
    int n = 0;
    int i = 0;
    int sum = 0;
    int tmp = 0;


    scanf("%d%d", &a, &n);
    for (i = 0; i < n; i++)
    {
        tmp = tmp * 10 + a;
        sum += tmp;
    }
    printf("%d\n", sum);

    return 0;
}
输出结果: 在这里插入图片描述
成功成功~收工!

在这里插入图片描述

相关文章
|
4月前
|
C语言
C语言第二十六弹--求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字
C语言第二十六弹--求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字
|
9月前
|
C语言
C语言:求Sn=a+aa+aaa+aaaa+aaaaa+……的前n项之和
思路: 总体思路: (一). 生成变量: int a = 0; -- 题目中的a int n = 0; -- a 的前 n 项
137 0
|
10月前
|
机器学习/深度学习 C语言
C语言刷题系列——3.a+aa+...+aaa..aa表达式输出
C语言刷题系列——3.a+aa+...+aaa..aa表达式输出
169 0
|
17天前
|
程序员 C语言
C语言库函数 — 内存函数(含模拟实现内存函数)
C语言库函数 — 内存函数(含模拟实现内存函数)
28 0
|
28天前
|
编译器 C语言 C++
【C语言】memset()函数(内存块初始化函数)
【C语言】memset()函数(内存块初始化函数)
26 0
|
1天前
|
C语言
【C语言】字符分类函数与字符转换函数
【C语言】字符分类函数与字符转换函数
7 1
|
1天前
|
程序员 编译器 C语言
C语言之函数与参数
C语言之函数与参数
5 0
|
2天前
|
C语言
C语言:内存函数(memcpy memmove memset memcmp使用)
C语言:内存函数(memcpy memmove memset memcmp使用)
|
2天前
|
C语言
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
|
4天前
|
存储 C语言
C语言函数的返回值
C语言函数的返回值
7 0