当前位置: 首页 > news >正文

2025-03-16 学习记录--C/C++-PTA 习题4-4 特殊a串数列求和

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、题目描述 ⭐️

习题4-4 特殊a串数列求和

给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa+⋯+aa⋯a(n个a)之和。

输入格式:
输入在一行中给出不超过9的正整数a和n。

输出格式:
在一行中按照“s = 对应的和”的格式输出。

输入样例:

2 3

输出样例:

s = 246

二、解题思路 ⭐️

代码中的getNum()函数解析:👇🏻

a=2 为例:🦋
n=1时:2 = 2 * 10^0
n=2时:22 = 2 * 10^1 + 2 * 10^0
n=3时:222 = 2 * 10^2 + 2 * 10^1 + =2 * 10^0
。。。
n=n时:n个2= 2 * 10^(n - 1) + ... + 2 * 10^2 + 2 * 10^1 + =2 * 10^0

三、代码(C语言)⭐️

#include <stdio.h>  // 包含标准输入输出库,用于使用scanf和printf等函数
#include <math.h>   // 包含数学函数库,用于使用pow函数

// 定义一个递归函数,生成由数字a重复n次组成的数
int getNum(int n, int a) {
    // 如果n为1,直接返回a(例如a=2,n=1时返回2)
    // 否则,返回a乘以10的(n-1)次方,加上递归调用getNum(n-1, a)的结果
    return n == 1 ? a : a * pow(10, n - 1) + getNum(n - 1, a);
}

int main() {
    int a, n;  // 定义变量a和n,分别表示数字和重复次数
    scanf("%d %d", &a, &n);  // 从用户输入中读取a和n的值

    int sum = 0;  // 定义变量sum,用于存储累加结果,初始值为0

    // 使用for循环计算从1到n的所有由a重复i次组成的数的和
    for (int i = 1; i <= n; i++) {
        sum += getNum(i, a);  // 调用getNum函数生成由a重复i次组成的数,并累加到sum中
    }

    // 输出累加结果sum
    printf("s = %d", sum);

    return 0;  // 程序正常结束
}

在这里插入图片描述

在这里插入图片描述

相关文章:

  • 电子元器件的假冒翻新防护
  • 【C++】string类讲解:含常用接口使用及原理模拟实现
  • 案例驱动的 IT 团队管理:创新与突破之路:第一章 重构 IT 团队管理:从传统到创新-1.1.3 敏捷开发 vs 传统流程
  • NAT、代理服务器、内网穿透和内网打洞
  • [生活] 如何区分 s ms us ns
  • 基于消失点标定前视相机外参
  • android 后台下载任务,断点续传
  • “driver-class-name: com.mysql.cj.jdbc.Driver“报错问题的解决
  • 英语面试常见问题
  • 【软考-架构】7、系统配置与性能评价
  • 03 介绍ffmpeg 视频解码流程
  • 3月16号
  • SNX币合规交易突破 XBIT去中心化交易所引领DEX安全新范式
  • 【算法学习之路】10.二叉树
  • 关系数据库设计基础:函数依赖、码与多值依赖详解
  • 大语言模型基础--task2:大模型技术基础
  • 平方矩阵问题
  • AlarmManager添加定时任务
  • 【JavaEE】快速上手JSON:构建高效 Java 后端数据桥梁,开启交互新篇,以 @RequestBody 为引的探索之旅
  • Amazon 全球买卖商品 库存模型
  • 铁肩担道义,历史鉴未来——中共中央政治局委员、外交部长王毅谈习近平主席对俄罗斯进行国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典
  • 中美经贸高层会谈在瑞士日内瓦开始举行
  • 国家统计局:4月份居民消费价格同比下降0.1%
  • 央行:当前我国债券市场定价效率、机构债券投资交易和风险管理能力仍有待提升
  • 南方地区强降雨或致部分河流发生超警洪水,水利部部署防范
  • 马上评|比起奇葩论文,更可怕的是“水刊”灰产