首页 > 试题广场 >

添加逗号

[编程题]添加逗号
  • 热度指数:28946 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}给定一个正整数 N \left(1 \leqq N \leqq 2\times10^9\right)
\hspace{15pt}现在需要将其转换为千分位格式,即从整数最低位开始,每三位数字插入一个英文逗号,以提高可读性。
\hspace{15pt}例如,对于 980364535,转换后为 980,364,535
\hspace{15pt}请编写程序完成该格式转换。

输入描述:
\hspace{15pt}在一行中输入一个整数 N \left(1 \leqq N \leqq 2\times10^9\right)


输出描述:
\hspace{15pt}输出一个字符串,表示将 N 转换为千分位格式后的结果。 
\hspace{15pt}请不要输出多余的空格或换行。
示例1

输入

980364535

输出

980,364,535
示例2

输入

6

输出

6

备注:

输入数据格式化输出
a = int(input())
print("{:,}".format(a))

编辑于 2024-02-11 17:04:41 回复(0)
#include <stdio.h>
void add(long long n){
    if(n<1000){
        printf("%lld",n);
    }else {
    add(n/1000);
    printf(",%03d",n%1000);
    }
}
int main() {
    long long N=0;
    scanf("%lld",&N);
    add(N);
    return 0;
}

发表于 2024-02-11 19:12:17 回复(1)
C语言这个也是能用啊
#include <locale.h>
#include <stdio.h>

int main() {
    setlocale(LC_NUMERIC, "");
    long long num;
    scanf("%lld", &num);
    printf("%'lld\n", num);
    return 0;
}

发表于 2025-08-19 19:35:36 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        long num = scanner.nextLong();
        //printf有自动分割
        System.out.printf("%,d",num);
    }
}

发表于 2022-07-05 11:02:15 回复(0)
#include <stdio.h>

int main(){
    long n;
    int arr[20] = { 0 }, i = 0;
    scanf("%ld", &n);
    while(n){
        arr[i] = n % 10;
        n /= 10;
        i++;
    }
    for(int j = i - 1, count = 0; j >= 0; j--, count++){
        printf("%d", arr[j]);
        if((i-1 - count) % 3 == 0 && count < i - 1)
            printf(",");
    }
    return 0;
}

发表于 2022-06-15 00:26:38 回复(0)
print("{:,}".format(int(input())))

发表于 2022-04-08 23:16:03 回复(1)
#include<bits/stdc++.h>

using namespace std;

int main() {
    string s, res;
    cin >> s;
    reverse(s.begin(), s.end());
    for (int i = 0; i < s.size(); ++i) {
        if (i % 3 == 0 && i != 0) res += ',';
        res += s[i];
    }
    reverse(res.begin(), res.end());
    cout << res;
    return 0;
}

发表于 2022-03-31 13:06:10 回复(0)
#include <stdio.h>
#include <string.h>
int main()
{
    char n[1000000]={0};//初始化,全为0
    scanf("%s",n);
    for(int i=0;i<strlen(n);i++)//strlen函数是在<string.h>下的一个计算字符串长度的函数
    {
        printf("%c",n[i]);
        if((strlen(n)-(i+1))%3==0 && (i+1) != strlen(n))//相当于i从1开始每三个,小于n
        {
            printf(",");
        }
    }
    return 0;
}
看评论区大佬一步一步跟着写下来的,楼主不熟悉字符串,只会简单的输入输出。
至少现在学到了一个<string.h>头文件,strlen这个计算字符串长度的函数。
希望那些和我一样的萌新有所启发吧。/_ \
发表于 2025-12-07 20:03:13 回复(0)
n = int(input())
print(f"{n:,}")

发表于 2025-11-06 09:48:10 回复(0)
#include<bits/stdc++.h>
using namespace std;
int main(){
    string s={},n={};
    int count=0;
    cin>>n;
for(int i=n.size()-1;i>=0;i--){
	count=count+1;
    s=n[i]+s;
if (count%3==0&&i!=0){
    s=","+s;
    }
}
cout<<s;
}

发表于 2025-10-12 14:38:09 回复(0)
#include <iostream>
#include <string>
using namespace std;

int main() {
    string n;
    cin>>n;
    string a,b,c ;
    string N;
    if (n.size()<=3) {
    a=n.substr(0,3);
    N=a;
    }
    if (n.size()>3 && n.size()<=6) {
    a=n.substr(0,n.size()-3);
    b=n.substr(n.size()-3,3);
    N=a+','+b;
    }
    if (n.size()>6) {
    a=n.substr(0,n.size()-6);
    b=n.substr(n.size()-6,3);
    c=n.substr(n.size()-3,3);
    N=a+','+b+','+c;
    }
    cout<<N;
}
// 64 位输出请用 printf("%lld")
发表于 2025-09-28 20:48:40 回复(0)
N = int(input())
print(f"{N:,}")
///
N = input()

res = ""

while len(N) > 3:
    res = ',' + N[-3:] + res
    N = N[:-3]

res = N + res
print(res)

发表于 2025-07-24 00:58:08 回复(0)
int main() {
    char arr1[20]={0};
    int a=0;
    scanf("%d\n",&a);
    int i=0;
    int b=0;
        while(a)
    {
    if(b!=0&& b%3==0)
    arr1[i++]=',';
        arr1[i++]=a%10+'0';
        a=a/10;
        b++;
    }
for(i--;i>=0;i--)
{
printf("%c",arr1[i]);
}
    return 0;
}
发表于 2024-04-29 17:49:39 回复(0)
int main() {
    int n;
    char str[20];//用来逆序存放最终输出的数字n和字符','
    int i = 0;//作为str字符数组的下标
    int count = 0;//用来计数
    scanf("%d", &n); 
    while (n)//结束条件
    {
        if (count == 3)//count每到3就放一个逗号字符到字符数组里
        {
            str[i] = ',';
            count = 0;//count重新开始计数
            goto qu;
        }
        int num= n % 10;
        sprintf(&str[i], "%d", num);//sprintf是格式转换函数,把数字转换成对应的字符
        n /= 10;
        count++;
    qu:
        i++;//每放进去一个字符,下标就++一下
    }
    for (int j = i - 1; j >= 0; j--)//逆序打印出字符数组即可
    {
        printf("%c", str[j]);
    }
    return 0;
}



发表于 2024-04-28 09:56:57 回复(0)
#include <stdio.h>
#include <math.h>
int main() {
    long long N;
    scanf("%lld",&N);
    int num = N,count1 = 0;
    while(num != 0){
        num = num/10;
        count1++;
    }
    int count2 = (count1-0.1)/3;
    int gf = pow(1000,count2);
    int a = N/gf;
    N = N % gf;
    printf("%d",a);
    for(int i = 0;i < count2;i++){
        int bf = pow(1000,count2-i-1);
        a = N / bf;
        N = N % bf;
        if(a < 10){
            printf(",00%d",a);
        }
        else if(a < 100){
            printf(",0%d",a);
        }
        else{
            printf(",%d",a);}
    }

    return 0;
}
发表于 2024-03-04 10:40:30 回复(0)
#include <stdio.h>
#include <string.h>

int main() {
    char str[10]={0};
    scanf("%s", str);
    for(int i=0; i<strlen(str); i++){
        printf("%c", str[i]);
        if((strlen(str)-(i+1))%3 == 0 && (i+1) != strlen(str)){
            printf(",");
        }
    }
    return 0;
}

发表于 2024-02-13 18:05:31 回复(0)
const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;

void (async function () {
    // Write your code here
    while ((line = await readline())) {
        let arr = line.split("");
        let n = arr.length;
        let arr1 = arr.reverse();
        let num = parseInt(n / 3);
        for (let index = 3; index < n + num; index += 3) {
            arr1.splice(index, 0, ",");
            index++;
        }
        if (n % 3 == 0) {
            arr1.pop();
        }
        let re = arr1.reverse()
        let str = re.join("");
        console.log(str);
    }
})();

发表于 2022-11-07 20:58:27 回复(0)
s = input()
ls = []
max,min = 0,1000
for i in s:
    ls.append(i)
for i in range(len(ls)): #得到max
    count = 0
    for j in range(len(ls)):
        if(ls[j] == ls[i]):
            count+=1
    if(count>=max):
        max = count
for i in range(len(ls)): #得到min
    count = 0
    for j in range(len(ls)):
        if(ls[j] == ls[i]):
            count+=1
    if(count<=min):
        min = count
true_value = max - min
flag = 0
if(true_value == 0):
    print("No Answer")
    print(true_value)
elif(true_value == 1):
    print("No Answer")
    print('0')
else:
    for i in range(2, true_value):
        if (true_value % i == 0):
            flag = 1
            print("No Answer")
            print(true_value)
            break
    if (flag == 0):
        print("Lucky Word")
        print(true_value)

发表于 2022-05-25 12:34:02 回复(0)
n=input()
kk=n[::-1]
s=''
j=1
for i in kk:
    s=s+i
    if j%3==0:
        s+=","
    j+=1
s=s[::-1]
if s[0]==",":
    print(s[1:])
else:
    print(s)
发表于 2022-03-06 21:40:57 回复(0)
#include <stdio.h>
#include<string.h>
int main() {
    char n[12];
    scanf("%s", n);
    int len = strlen(n);
    for (int i = len - 3; i > 0; i -= 3) {
        memmove(n + i + 1, n + i, len - i + 1);
        n[i] = ',';
        len++;
    }
    printf("%s", n);
}
发表于 2025-12-16 20:35:24 回复(0)

问题信息

难度:
100条回答 3899浏览

热门推荐

通过挑战的用户

查看代码
添加逗号