首页 > 试题广场 >

反向输出一个四位数

[编程题]反向输出一个四位数
  • 热度指数:78258 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}给定一个四位整数 n1000 \leqq n \leqq 9999),将其各位数字反向输出。若反向后高位为零,也需保留该零。

输入描述:
\hspace{15pt}在一行中输入一个四位整数 n1000 \leqq n \leqq 9999)。


输出描述:
\hspace{15pt}输出一个四位整数,为 n 反向后的结果;若高位为零,也需保留。
示例1

输入

1234

输出

4321

说明

在这个样例中,输入的四位数是 1234,反向输出后得到 4321
示例2

输入

1000

输出

0001

说明

在这个样例中,输入的四位数是 1000,反向输出后得到 0001,注意保留了前导零。
发表于 2020-12-17 09:03:10 回复(0)

                               JavaScript

while(line=readline()){
    console.log(line.split("").reverse().join(""));
}


发表于 2020-06-20 09:12:52 回复(0)
如果有好好写前面一个"生日日期输入输出"控制宽域输入的题的话就很简单了
#include<stdio.h>
int main(){
    int a,b,c,d;
    scanf("%1d%1d%1d%1d",&a,&b,&c,&d);
    printf("%d%d%d%d",d,c,b,a);
}


发表于 2020-05-30 10:25:55 回复(4)
不出意外这应该是最短的答案了
a = input("")
print(a[::-1])


发表于 2020-10-08 14:56:45 回复(5)
#include<stdio.h>

int main()
{
    int n;
    scanf("%d",&n);
    for(int i=0;i<4;i++){
        printf("%d",n%10);
        n/=10;
    }
    
    return 0;
}

发表于 2021-08-22 18:18:30 回复(1)
# 方法一
a = input()
num = ''
for i in range(len(a)):
    num += a[len(a)-1-i]
print(num)

# 方法二
a = input()
print(a[::-1])

# 方法三
a = list(input())
a.reverse()
print("".join(a))

# 方法四
a = input()
def rvs(s):
    if s == '':
        return s
    else:
        return s[-1]+rvs(s[:-1])
print(rvs(a))

发表于 2021-09-09 00:48:15 回复(0)
#include <iostream>
using namespace std;

int main() {
    string a;
    cin >> a;
    cout << a[3] << a[2] << a[1] << a[0];
}
那包用字符串的
发表于 2025-07-14 10:41:16 回复(0)
import java.util.Scanner;

public class Main{

    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int number=scanner.nextInt();
        String str = String.valueOf(number);
        for(int i=0;i<str.length();i++){
            System.out.print(str.charAt(str.length()-i-1));   
        }
    }


}
发表于 2020-03-22 13:58:46 回复(0)
发表于 2021-06-07 16:26:36 回复(0)
#include<stdio.h>
int main(){
    int n;
    while(~scanf("%d",&n))
        printf("%d%d%d%d\n",n%10,(n/10)%10,(n/100)%10,n/1000);
}

发表于 2021-06-07 19:09:57 回复(2)
import java.util.Scanner;

public class Main{

	public static void main(String[] args) {
		   Scanner sc=new Scanner(System.in);
		   int n=sc.nextInt();
		   while(n!=0){
			   int a=n%10;
			   System.out.print(a);
			   n=n/10;
		   }
		    
	}

}

发表于 2020-07-01 16:27:31 回复(0)
import java.util.Scanner;
    
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        String str = input.nextLine();

        System.out.println(""+str.charAt(3)+str.charAt(2)+str.charAt(1)+str.charAt(0));   
    }
}

发表于 2020-05-26 22:13:07 回复(2)
另辟蹊径
#include<stdio.h>
int main(void)
{
    char arr[5];
    gets(arr);
    for(int i=3;i>=0;i--){
        printf("%c",arr[i]);
    }
}
发表于 2022-03-03 13:25:18 回复(1)
#include<stdio.h>
int main()
{
    int a, b, c, d;
    scanf("%1d%1d%1d%1d", &a, &b, &c, &d);
    printf("%1d%1d%1d%1d",d, c, b, a);
}
发表于 2021-09-17 23:26:14 回复(1)
#include<stdio.h>
int main()
{
int a,b,c,d,e;
    scanf("%d",&a);
    b=a/1000;
    c=a%1000/100;
    d=(a%1000-c*100)/10;
    e=a%10;
printf("%d%d%d%d",e,d,c,b);
return 0;
}
发表于 2020-12-18 20:02:17 回复(0)
vdp头像 vdp
import java.util.Scanner;
public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        StringBuffer sb = new StringBuffer(scan.nextLine());
//用scan.nextLine()读取整行字符,然后用字符串string对象创建一个stringbuffer对象
        System.out.println(sb.reverse());//直接使用StringBuffer类的反转函数反转字符串
        scan.close();
    }
}

编辑于 2020-12-01 17:00:37 回复(0)
#include<stdio.h>

using namespace std;

int main(){
    int n;
    scanf("%d",&n);
    while(n>0){
        printf("%d",n%10);
        n=n/10;
    }
    return 0;
}

发表于 2020-04-17 11:38:05 回复(1)
#include <stdio.h>

int main()
{
    char str[5];
    gets(str);
    for(int i = 3; i >= 0; i--)
        putchar(str[i]);
    putchar('\n');
}

发表于 2020-04-05 14:02:40 回复(0)
取余消位,java刚刚学,好多东西没学到,还是用的c的东西在做java哈哈哈
发表于 2020-03-10 17:17:48 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        
        int a = in.nextInt();

        // 拆分四位:千位、百位、十位、个位
        int qian = a / 1000;
        int bai = (a / 100) % 10;
        int shi = (a / 10) % 10;
        int ge = a % 10;

        // 反转后:个位→千位,十位→百位,百位→十位,千位→个位
        
        int reverse = ge * 1000 + shi * 100 + bai * 10 + qian;

        // 格式化输出:%04d 表示“至少4位,不足补0”; 比如输入 1000, 输出 0001,保留前面的0;
        System.out.printf("%04d\n",reverse);

        in.close();
    }
}
通过数字计算实现(比如巩固 “取位” 逻辑),可通过拆分每一位再拼接,最后用格式化输出补零

2. 第二种方法,直接使用 StringBuilder
public class Main {
    public static void main (String [] args) {
        Scanner sc = new Scanner (System.in);
// 1. 读取四位整数(直接转字符串更方便处理反转和零)
        String numStr = sc.next ();
// 2. 用 StringBuilder 的 reverse () 方法反转字符串
        String reversedStr = new StringBuilder (numStr)
            .reverse ()
            .toString ();
// 3. 直接输出反转后的字符串(天然保留前导零)
        System.out.println (reversedStr);
sc.close();}


  • 读取输入:直接用sc.next()读取输入(读取输入的字符串)的四位整数(本质是字符串),避免先转int再转String的多余步骤。
  • 反转字符串StringBuilder是 Java 中处理字符串修改的工具类,其reverse()方法能直接反转字符串(如"1000"→"0001","1234"→"4321")。
  • 输出结果:反转后的字符串直接输出,无需额外处理,天然符合 “保留前导零” 的要求。


发表于 2025-10-04 13:12:13 回复(0)

问题信息

难度:
274条回答 4761浏览

热门推荐

通过挑战的用户

查看代码
反向输出一个四位数