【牛客网】BC146 添加逗号

2023-10-27

一.题目描述

牛客网题目链接:添加逗号_牛客题霸_牛客网

描述:

对于一个较大的整数 N(1<=N<=2,000,000,000)

比如 980364535,我们常常需要一位一位数这个数字是几位数,但是如果在这 个数字每三位加一个逗号,它会变得更加易于朗读。

因此,这个数字加上逗号成如下的模样:980,364,535请写一个程序帮她完成这件事情.

输入描述:

一行一个整数 N.

输出描述:

一行一个字符串表示添加完逗号的结果.

示例1:

输入:980364535

输出:980,364,535

备注:

1<=n<=2,000,000,000

题目详情:


 二.题目思路

首先,我们可以将整形N通过每次%10的方式将其末位数字存放在字符数组arr中.

其次,可以每存三个数字,就往数组里存放一个' , '.

最后,将数组逆序打印即可得到我们想要的效果.

思路图解如下:

要注意的是,在编写好程序后我们可能会遇到如下问题:

加入'计数器k'后代码及详细解析如下:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
    int N = 0;//创建整形变量n,用来接收题目输入数据
    scanf("%d", &N);//用scanf接收数据
    char arr[14] = { 0 };//创建字符数组,存储从整形上剥下来的数据
    int i = 0;//用来记录数组录入的次序
    int k = 0;//用来随第15行的i++同步调整,以便第13行的if语句可以正常判断
    while (N)
    {
        if (i != 0 && i % 3 == k)//i!=0防止录入最后一个数字时给其后面加','
        {
            arr[i++] = ',';
            k++;
        }
        arr[i++] = N % 10 + '0';//将N的末尾剥下来放入数组arr中
        N /= 10;//剥完后舍去末位数字
    }
    i--;//上述循环中i最后会多加一次,不减去的话,后续打印会造成数组越界访问
    for (; i >= 0; i--)//倒序进行循环,即从i->0
    {
        printf("%c", arr[i]);//打印数组下标为i的字符
    }
    return 0;
}

三.完整解题代码

根据上述思路,本题解题代码如下:

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
int main()
{
    int n=0;
    scanf("%d",&n);
    char arr[14]={0};
    int i=0;
    int k=0;
    while(n)
    {
        if(i!=0&&i%3==k)
        {
            arr[i++]=',';
            k++;
        }
        arr[i++]=n%10+'0';
        n/=10;
    }
    i--;
    for(;i>=0;i--)
    {
        printf("%c",arr[i]);
    }
    return 0;
}

 拷贝到牛客网测试运行:

成功通过:

 


今日感悟:不做不必要的担忧,不做遥远的规划,从来没有所谓既定轨道能如约丝毫不差的驶向终点.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【牛客网】BC146 添加逗号 的相关文章

随机推荐

  • matlab求解普通函数的导数问题(diff函数的用法)

    目录 一元函数的导数 MATLAB函数语法 应用举例 例1 普通函数求导 例2 复合泛函求导 例3 矩阵函数求导 多元函数的偏导数 MATLAB函数语法 应用举例 例1 求偏导并绘图 例2 三元函数求偏导 一元函数的导数 MATLAB函数语
  • matlab RANSAC拟合二次多项式曲线(详细过程版)

    目录 一 算法概述 二 代码实现 三 结果展示 四 相关链接 一 算法概述 RANSAC是一种鲁棒性较强的拟合算法 可以用于估计数据集中的模型参数 对于拟合二次多项式曲线 RANSAC算法的步骤如下 1 随机选择一小部分数据点 假设它们是符
  • NodeMCU-32S-内部DAC音频输出测试

    NodeMCU 32S 内部DAC音频输出测试 文章目录 NodeMCU 32S 内部DAC音频输出测试 前言 硬件说明 软件编译 测试 ESP32 DAC参考链接 前言 一直想玩玩ESP32的蓝牙音频功能 手上面有一个NodeMCU 32
  • DAY02: 编程入门03- 核心代码解析

    1 Arduino默认提供的两个方法 setup 方法 用于初始化 程序一开始 只运行一次 用于定于引脚为OUTPUT还是INPUT loop 方法 循环不停得执行 用于编写小车移动旋转等一直需要命令的代码 2 小车电机运动的核心方法 定于
  • ESP8266 NodeMCU 擦除闪存执行出厂重置

    在本教程中 我们将了解如何在 Windows Linux 和 MacOS 中使用 esptool py 命令行实用程序擦除 ESP8266 的闪存 并讨论为什么以及何时需要执行此操作 与任何电子设备一样 有时您可能需要将 ESP8266 重
  • 学校报名登记收缴费用小程序开发制作

    报名登记收缴费用小程序 适合培训机构 幼儿园 小学 高中 初中 大学等学校 报名登记小程序 微信扫码登记 手机端登记报名信息 数据发送至管理后台 管理员可查阅数据列表 完成了学生报名信息收集 审核 修改 复审 收费 等多项复杂功能 收费可以
  • 蜣螂优化(DBO)算法附MATLAB代码

    目录 一 蜣螂优化 DBO 算法灵感来源 二 蜣螂优化 DBO 算法设计 三 蜣螂优化 DBO 算法MATLAB部分代码 四 运行结果 蜣螂优化 Dung Beetle Optimizer DBO 算法是2022年11月27日提出的 大家可
  • Sentinel服务熔断和降级

    还记得我们前所说的服务降级吗 也就是说我们需要在整个微服务调用链路出现问题的时候 及时对服务进行降级 以防止问题进一步恶化 那么 各位是否有思考过 如果在某一时刻 服务B出现故障 可能就卡在那里了 而这时服务A依然有大量的请求 在调用服务B
  • 29. Divide Two Integers

    这题 Given two integers dividend and divisor divide two integers without using multiplication division and mod operator Re
  • UnityVR--机械臂场景5-记录角度自动旋转

    机械臂已经能够在示教模式下单步旋转了 下一步 我们可以将每个关节旋转的角度记录下来 让机械臂自动旋转到指定位置 1 在UI画布上增加两个按钮 recordButton和AutoButton 一个用来记录每个节点旋转的角度 另一个让机械臂自动
  • 【算法修炼】优先队列

    优先队列 一 最后一块石头的重量 简单 二 数组中两元素的最大乘积 简单 三 根据字符出现频率排序 中等 四 找到和最大的长度为k的子序列 简单 优先队列 也称为堆 Heap 它可以在保证队列的结构下 对队列的内部元素进行排序 可以按照某个
  • Windows上通过CMake编译COLMAP源码操作步骤

    COLMAP源码 https github com colmap colmap 最新的稳定版本位于master分支 最新的开发版本位于dev分支 这里使用master分支进行编译 commit id为1555ff0 官方推荐使用vs2019
  • 高速计数器学习

    S7 1200 CPU 提供了最多 6 个 1214C 高速计数器 其独立于 CPU 的扫描周期进行计数 可测量的单相脉冲频率最高为 100KHz 双相或 A B 相最高为 30KHz 除用来计数外还可用来进行频率测量 高速计数器可用于连接
  • LeetCode刷题复习

    内容参考CyC大佬的LeetCode复习指南 算法思想复习 在考虑更优解时 先从数据状况入手 一般C 1s可以运行 1 0 7 1 0 8 10 7 10 8 107 108次 看有何特点可以利用 如有序 回文 重复 推公式等 1 1双指针
  • spring boot 如何配置Logback

    在 Spring Boot 项目中 Logback 是默认的日志框架 要配置 Logback 你需要创建一个名为 logback spring xml 的配置文件并将其放在项目的 src main resources 目录下 以下是一个详细
  • Unity设置物体旋转角度误区

    小白欢迎评论 共同探讨 共同进步 第一篇Unity的博文 这篇很短 接下来会陆续更新笔记本上之前记得坑 在这里有一个小误区 一般新手都非常容易出的错误 设置物体位置我们都是给transform position赋值 那么问题来了 设置物体的
  • ubuntu 12.04新安装好后需要进行的包升级和清理工作

    根据这么多次的操作经验 我发现 ubuntu系统在新安装好后需要进行一些包的升级和清理工作 不然的话 后续安装各种软件都不顺畅 会出现各种各样的问题 需要进行的包升级和清理工作其实很简单 只需要执行以下两条命令即可 apt get f in
  • 视觉slam g2o 编译出现 Cmake Error:By not providing “FindG2O.cmake““G2OConfig.cmake“ in CMAKE_MODULE_PATH错误

    第一步 这时需要在cmakelist文件中更改几行代码 代码如下 将LIST APPEND CMAKE MODULE PATH PROJECT SOURCE DIR cmake list APPEND CMAKE MODULE PATH X
  • Datawhale 李宏毅机器学习 Task2

    一 回归的定义和举例 定义 Regression 就是找到一个函数 function 通过输入特征 x 输出一个数值 Scalar 举例 股市预测 输入 过去10年股票的变动 新闻咨询 公司并购咨询等 输出 预测明天股市的平均值 自动驾驶
  • 【牛客网】BC146 添加逗号

    一 题目描述 牛客网题目链接 添加逗号 牛客题霸 牛客网 描述 对于一个较大的整数 N 1 lt N lt 2 000 000 000 比如 980364535 我们常常需要一位一位数这个数字是几位数 但是如果在这 个数字每三位加一个逗号