首页 > 试题广场 >

添加逗号

[编程题]添加逗号
  • 热度指数:10529 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
对于一个较大的整数 N(1<=N<=2,000,000,000)
比如 980364535,我们常常需要一位一位数这个数字是几位数,但是如果在这 个数字每三位加一个逗号,它会变得更加易于朗读。
因此,这个数字加上逗号成如下的模样:980,364,535请写一个程序帮她完成这件事情


输入描述:
一行一个整数 N


输出描述:
一行一个字符串表示添加完逗号的结果
示例1

输入

980364535

输出

980,364,535

备注:
1≤n≤2,000,000,000
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<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>
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 回复(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)
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;
}



发表于 今天 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)
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)
#include <iostream>
#include<algorithm>
using namespace std;

int main() {
    string str;
    cin>>str;
    string str2="";
    int num=0;
    for(int i=str.size()-1;i>=0;i--){
        if(num==3){
            str2+=',';
            str2+=str[i];
            num=0;
        }
        else{
            str2+=str[i];
        }
        num++;
    }
    reverse(str2.begin(),str2.end());
    cout<<str2;
}
// 64 位输出请用 printf("%lld")

编辑于 2024-03-25 20:43:13 回复(0)
#include <stdio.h>

int main() {
    char num[20], num_1[20];
    int count, start, flag = 0, temp = 0, x = 0;
    gets(num);
    count = strlen(num);
    start = count / 3;
    flag = count % 3;
    if (flag) {
        count += start;
        for (int i = 0; i < count; i++) {
            if (i == flag || (i == temp + 4)) {
                for (int j = count - start; j > i; j--) {
                    num[j] = num[j - 1];
                }
                num[i] = ',';
                start--;
                x++;
                temp = i;
            }
        }
    }
    else {
        count += (start - 1);
        for (int i = 0; i < count; i++) {
            if (i == 3 || (i == temp + 4)) {
                for (int j = count - start + 1; j > i; j--) {
                    num[j] = num[j - 1];
                }
                num[i] = ',';
                start--;
                x++;
                temp = i;
            }
        }
    }
    for (int i = 0; i < count; i++) {
        printf("%c", num[i]);
    }
    return 0;
}
发表于 2024-03-10 22:37:32 回复(0)
#include <stdio.h>

int main() {
    //初始化数据
    int num, i = 0, j = 0, sum = 0, arr[4] = { 0 };
    scanf("%d", &num);
    int count2 = 0;
    while (num) {
        arr[i++] = num % 1000;
        num /= 1000;
    }
    //遍历
    int flag = 1;
    for (j = 3; j >= 0; j--) {
        if (arr[j] != 0) {
            if (flag) {
                flag = 0;
                printf("%d", arr[j]);
            } else printf(",%03d", arr[j]);
        }
    }
    return 0;
}

编辑于 2024-02-23 11:42:06 回复(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)
输入数据格式化输出
a = int(input())
print("{:,}".format(a))

编辑于 2024-02-11 17:04:41 回复(0)
package main

import (
    "fmt"
    "strings"
)

func reverse(sl []string) {
    l,r := 0,len(sl)-1
    for l<r {
        sl[l],sl[r] = sl[r],sl[l]
        l++
        r--
    }
}

func main() {
    var n int
    fmt.Scan(&n)

    t := []string{}

    for n > 0 {
        var x string
        if n >= 1000 {
            x = fmt.Sprintf("%03d", n%1000)
        } else {
            x = fmt.Sprintf("%d", n%1000)
        }
        n /= 1000
        t = append(t, x)
    }

    reverse(t)

    fmt.Println(strings.Join(t, ","))
}
编辑于 2023-12-21 03:46:26 回复(0)
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
    int arr[20] = { 0 };
    int n = 0;
    int i = 1;
    int count = 0;
    scanf("%d", &n);
    while(n)
    {
        arr[i] = n % 10;
        n /= 10;
        i++;
        count++;
    }
    for (int i = count; i >0; i--)
    {
        switch (count % 3)
        {
        case 0:
            if (i == 1)
            {
                printf("%d", arr[i]);
            }
            else if (i % 3 == 1)
            {
                printf("%d,", arr[i]);
            }
            else
            {
                printf("%d", arr[i]);
            }
            break;
        case 1:
        {
            if (i == 1)
            {
                printf("%d", arr[i]);
            }
            else if (i % 3 == 1 || i == count)
            {
                printf("%d,", arr[i]);
            }
            else
            {
                printf("%d", arr[i]);
            }
            break;
        }
        case 2:
        {
            if (i == 1)
            {
                printf("%d", arr[i]);
            }
            else if (i % 3 == 1 || i == count - 1)
            {
                printf("%d,", arr[i]);
            }
            else
            {
                printf("%d", arr[i]);
            }
            break;
        }
        }
    }
    return 0;
}
发表于 2023-12-16 08:49:40 回复(0)
#include <stdio.h>

int tmp=0;
int tag=0;
void Print(int n)
{
    if(n<1000)
    {
        printf("%d",n);
        if(1==tag)
        printf(",");
        return;
    }
    else
        tag=1;
        Print(n/1000);
    printf("%03d",n%1000);
    if(n!=tmp)
    printf(",");
}
int main()
{
    int n=0;
    scanf("%d",&n);
    tmp=n;
    Print(n);
    return 0;
}
发表于 2023-11-03 11:02:39 回复(0)
#include <stdio.h>
#include <string.h>

int main()
{
    char arr1[11] = { 0 };
    char arr2[15] = { 0 };
    char* p = arr2;
    gets(arr1);
    int len = strlen(arr1);
    if (len <= 3)
    {
        strncpy(arr2, arr1, 3);
        printf("%s\n", arr2);
    }
    else if (len > 3 && len <= 6)
    {
        int i = 0;
        int j = 0;
        for (i = 0; i < 1; i++)
        {
            strncpy(arr2 + 15 - 3, arr1 + len - 3, 3);
            arr2[15 - 4] = ',';
            j += 3;
        }
        while (*p != ',')
        {
            p++;
        }
        strncpy(p-len+3, arr1, len-3);
        printf("%s\n", p - len + 3);
    }
    else if (len > 6)
    {
        int i = 0;
        int j = 0;
        for (i = 0; i < 2; i++)
        {
            if (i == 0)//153920529
            {
                strncpy(arr2 + 15 - 3-1, arr1 + len - 3, 3);
            }
            else if (i > 0)
            {
                strncpy(arr2 + 15 - 3 - 1-1 - j, arr1 + len - 3 - j, 3);
            }
            arr2[15 - 4 -1- 4 * i] = ',';
            j += 3;
        }
        p = arr2;
        while (*p != ',')
        {
            p++;
        }
        strncpy(p - len + 6, arr1, len-6);
        printf("%s\n", p - len + 6);
    }
    return 0;
}

发表于 2023-10-01 15:13:32 回复(0)
in_str = list(input()[::-1])

for i in range(len(in_str)):
    if i * 4 + 3 < len(in_str):
        in_str.insert(i * 4 + 3, ",")
    else:
        break

print("".join(in_str[::-1]))

发表于 2023-05-31 21:28:36 回复(0)