首页 > 试题广场 > 数字颠倒
[编程题]数字颠倒
  • 热度指数:148117 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

描述:

输入一个整数,将这个整数以字符串的形式逆序输出

程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001



输入描述:

输入一个int整数



输出描述:

将这个整数以字符串的形式逆序输出

示例1

输入

1516000

输出

0006151
#include<iostream>
#include<algorithm>
using namespace std;

int main(){    
    int n;
    cin>>n;
    string str = to_string(n);
    reverse(str.begin(), str.end());
    cout<<str;
    return 0;
}

发表于 2017-05-25 22:53:54 回复(10)
import java.util.*;
public class Main {
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        String str = scan.nextLine();
        StringBuffer sb = new StringBuffer(str);
        sb.reverse();
        System.out.println(sb.toString());
    }

}

发表于 2016-07-12 16:11:15 回复(7)

python一行法:

print(input()[::-1])
发表于 2017-09-06 11:07:02 回复(10)
//数字转换为字符类型+'0'
#include<iostream>

using namespace std;

int main(){
	int n;
	cin>>n;
	char tmp;
	while(n){
		tmp=n%10 + '0';
		cout<<tmp;
		n/=10;
	}
	return 0;
}

编辑于 2016-04-01 09:36:08 回复(14)
#include <iostream>
using namespace std;
int main(){
    int n;
    while(cin >> n){
        string ans;
        do{
            ans += n%10+'0';
            n /= 10;
        }while(n);
        cout << ans;
    }
    return 0;
}

发表于 2016-07-25 16:55:33 回复(9)
import java.util.*;
public class Main{
	public static void main(String []args){
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int i=0;
        String res="";
        
        while(num!=0){
        	int t1=num%10;
        	int t2=num/10;
        	res=res+String.valueOf(t1);
        	i++;
        	num=t2;	
        }
        System.out.println(res);
    }
}

发表于 2016-05-08 22:20:29 回复(4)

超简洁代码,3、4行搞定,且不牺牲可读性。

[思路] a%10取个位然后输出,a/=10去掉个位,循环直到输出所有数字。

P.S. 没必要转成字符再输出,直接按int类型输出即可,不影响判题程序/脚本依然按照字符(串)类型比较程序输出与测试用例

#include
int main()
{
    int a; scanf("%d", &a);
    do printf("%d", a%10), a /= 10; // 注意这里只有一条语句 不用加花括号
       while(a); // do while才能在输入等于0时输出 感谢@牛客122438009号指正
    return 0;    // P.P.S. 然而牛客的测试用例并没有考察输入为0的边界情况
}
编辑于 2020-03-10 00:25:35 回复(1)
#include<iostream>
#include<string>
using namespace std;
int main()
{
	string str;
	cin >> str;
	for (int i = str.size() - 1; i >= 0; i--)
		cout << str[i];
	return 0;
}
以字符串格式输入,在逆序输出该串即可。

发表于 2016-07-05 17:33:11 回复(11)
print raw_input()[::-1]
利用python反向编译字符串
发表于 2017-07-31 17:13:16 回复(0)
#include <stdio.h>
int main() 
{
int a;
scanf("%d", &a);
while (a > 0)
{
printf("%d", a % 10);
a /= 10;
}
return 0;
}

发表于 2016-03-06 20:20:45 回复(5)
#include <iostream>
#include <string>
using namespace std;

int main(int argc, char *argv[])
{
 string zheng;
 cin>>zheng;
 string s(zheng.rbegin(),zheng.rend());
 cout<<s<<endl;
 return 0;
}

发表于 2017-04-04 19:36:09 回复(0)
#include <string>
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    string str;
    vector<char> vec;
    char temp;
    cin>>str;
    int size = str.length();
    for(int i=0;i<size;i++)
    {
        vec.push_back(str[i]);
    }
    for(int i=0;i<size/2;i++)
    {
        temp=vec[i];
        vec[i]=vec[size-i-1];
        vec[size-i-1]=temp;
    }
    for(int i=0;i<size;i++)
    {
        cout<<vec[i];
    }
    return 0;
}

发表于 2019-09-14 13:29:19 回复(0)
// 要玩就玩递归啊
#include <iostream>

using namespace std;

void helper() {
    char c;
    if (cin >> c) {
        helper();
        cout << c;
    }
}

int main() {
    helper();
}
编辑于 2018-10-11 13:31:10 回复(0)
shuzi=raw_input()
print shuzi[::-1]

发表于 2016-08-25 22:28:14 回复(3)
num=raw_input("")
str=""
for i in range(-1,-len(num)-1,-1):
    str+=num[i]
print str

发表于 2016-07-03 22:15:55 回复(2)
import java.util.Scanner;




public class Main {

	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		while(scan.hasNext()){

			String s=scan.nextLine();
			StringBuffer sb=new StringBuffer();
/*或者可以直接利用stringBuffer对象的reverse函数*/
			for (int i = 0; i < s.length(); i++) {
				sb.append(s.charAt(s.length()-1-i));
			}
			System.out.println(sb.toString());
		}
	}
	
	
}


发表于 2016-07-21 12:31:28 回复(6)
#include<iostream>
using namespace std;
int main(){
	int a;
	while (cin >> a){
		while (a){
			int curB = a % 10;
			a /= 10;
			cout << curB;
		}
		cout << endl;
	}

	return 0;
}

发表于 2016-06-16 15:01:43 回复(0)
import java.util.Scanner;

public class Main{

	public static void main(String[] args) {
		Scanner ss = new Scanner(System.in);
		System.out.println(new StringBuilder(ss.nextLine()).reverse());
	}
}

发表于 2020-05-08 19:34:19 回复(0)
python一句话解决

print(input()[::-1]);
发表于 2020-04-23 20:34:08 回复(0)
使用setfill设置填充字符
#include <iostream>
#include <cstdio>
#include <iomanip>
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    int num;
    scanf("%d", &num);
    int newNum = 0;
    unsigned char counter = 0;
    while (num) {
        newNum *= 10;
        newNum += num % 10;
        num /= 10;
        ++counter;
    }
    cout << setfill('0') << setw(counter) << newNum << '\n';
    return 0;
}


编辑于 2020-04-21 00:47:07 回复(0)