首页 > 试题广场 >

添加逗号

[编程题]添加逗号
  • 热度指数:29512 时间限制: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

备注:

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int N=sc.nextInt();
        String str=String.valueOf(N);
        char[] ch=str.toCharArray();
        String str1="";
        int count=0;
        for(int i=ch.length-1;i>=0;){
            if(count==3){
                str1+=",";
                count=0;
            }else{
                str1+=ch[i];
                i--;
                count++;
            }
        }
        char[] ch1=str1.toCharArray();
        int left=0;
        int rigth=ch1.length-1;
        while(left<rigth){
            char temp=ch1[rigth];
            ch1[rigth]=ch1[left];
            ch1[left]=temp;
            left++;
            rigth--;
        }
        System.out.println(String.valueOf(ch1));
    }
}
发表于 2025-11-08 11:43:46 回复(0)
另辟蹊径
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNext()) { // 注意 while 处理多个 case
            String str = in.nextLine();
            int len = str.length();
            int m=len%3;
            if(m==0) str=str;
            if(m==1) str="xx"+str;
            if(m==2) str="x"+str;
            char[] ch=str.toCharArray();
            String res="";
            int count=0;
            for(int i=0;i<ch.length;){
                if(count==3){
                    res+=",";
                    count=0;
                }else{
                    res+=String.valueOf(ch[i]);
                    i++;
                    count++;
                }
            }
            char[] ress=res.toCharArray();
            for(int i =0;i<ress.length;i++){
                if(ress[i]!='x') System.out.print(ress[i]);
            }            
        }
    }
}

发表于 2025-06-11 18:28:33 回复(0)
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        String str=sc.next();
        StringBuilder sb=new StringBuilder(str);
        for(int i=str.length()-3;i>0;i-=3){
            sb.insert(i,",");
        }
        System.out.println(sb.toString());
    }
}

发表于 2022-08-14 15:06:44 回复(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)

问题信息

难度:
4条回答 3972浏览

热门推荐

通过挑战的用户

查看代码
添加逗号