首页 > 试题广场 >

整数的倒数

[编程题]整数的倒数
  • 热度指数:4675 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
整数的倒数

输入描述:
输入一个整数x


输出描述:
把x倒序输出
示例1

输入

123

输出

321
示例2

输入

-123

输出

-321
示例3

输入

-0

输出

-0

python

num = input()
print("-" + num[1:][::-1] if "-" in num else num[::-1])
发表于 2019-09-08 22:05:45 回复(3)
最直接的办法:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main(){
    string x;
    cin >> x;
    if(x[0] == '-'){
        //-123456 -> -654321
        reverse(x.begin(), x.end());
        string m = x.substr(0, x.length() - 1);
        cout << "-" + m << endl;
    } else{
        reverse(x.begin(), x.end());
        cout << x << endl;
    }
    return 0;
}
整数拆解
#include <iostream>
#include <vector>
using namespace std;

int main(){
    long long x;
    cin >> x;
    if(x == -0){
        cout << "-" + to_string(0) << endl;
        return 0;
    }
    if(x >= 0){
        long long sum = 0;
        vector<int> vec;
        while(x){
            // 123456
            vec.push_back(x % 10);
            x /= 10;
        }
        for(vector<int>::iterator it = vec.begin(); it != vec.end(); ++it){
            sum = sum*10 + (*it);
        }
        cout << sum << endl;
        return 0;
    } else{
        x *= -1;
        long long sum = 0;
        vector<int> vec;
        while(x){
            // 123456
            vec.push_back(x % 10);
            x /= 10;
        }
        for(vector<int>::iterator it = vec.begin(); it != vec.end(); ++it){
            sum = sum*10 + (*it);
        }
        cout << sum * -1 << endl;
        return 0;
    }
}



发表于 2020-06-29 22:26:33 回复(0)
#include<bits/stdc++.h>

using namespace std;


int main(void)
{
	string s;
	cin >> s;
	if (s[0] == '-')reverse(s.begin() + 1, s.end());
	else reverse(s.begin(), s.end());
	cout << s;
}

发表于 2020-04-01 22:05:10 回复(0)
""""
逆序输出,本题只需考虑‘-’号
"""

if __name__ == "__main__":
    s = input().strip()
    if s[0] == '-':
        print(s[0], end='')
        s = s[1:]
    ans = s[::-1]
    print(ans)

编辑于 2019-07-12 11:28:25 回复(2)
当作字符串来处理~
#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s;
	while(cin>>s)
	{
		int len=s.size();
		if(s[0]=='-'){
			cout<<"-";
			for(int i=len-1;i>0;i--) cout<<s[i]; 
		}
		else
		{
			for(int i=len-1;i>=0;i--) cout<<s[i];
		}
		cout<<endl;	
	}
	return 0;
} 


发表于 2020-09-02 12:25:07 回复(0)
有没有大神能帮我看看,我这种做法为什么只有60%,很奇怪!!!
/*
利用StringBuffer的方法来插入
*/
import java.util.Scanner;
public class Main{//不知道为只有60%
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        String str = input.nextLine();//直接在输入的时候,我就将他看成字符串
        StringBuffer sb = new StringBuffer();
        StringBuffer sb1 = new StringBuffer();//用于存储翻转后的字符串
        sb.append(str);
        //特殊情况当为-0的时候输出-0
        if(sb.length()==2&&sb.charAt(0)=='-'&&sb.charAt(1)=='0'){
            System.out.println(sb.toString());
            return;
        }
        //如果开头为负号,则先存入
        if(sb.charAt(0)=='-'){
            sb1.append('-');
            for(int i = sb.length()-1;i>0;i--)
                sb1.append(sb.charAt(i));
        }else{
            for(int i = sb.length()-1;i>=0;i--)
                sb1.append(sb.charAt(i));
        }
        
        //StringBuffer转成String 在转成int
        System.out.println(Integer.parseInt(sb1.toString()));
            
    }
}

发表于 2020-04-21 15:55:04 回复(2)
import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        String[] arr = str.split("");
        if(arr[0].equals("-")){
            System.out.print("-");
            for(int i = arr.length-1; i > 0; i--){
                System.out.print(arr[i]);
            }
        }else{
            for(int i = arr.length-1; i >= 0; i--){
                System.out.print(arr[i]);
            }
        }
    }
}

发表于 2020-04-09 19:59:36 回复(0)
JavaScript(Node) 😎题目:唯品会💄-整数反转(slice/parseInt)
leetcode 07整数反转
const readline = require('readline')
const rl = readline.createInterface({
    input: process.stdin,
    ouput: process.stdout
})
let inArr = []
rl.on('line',line=>{
    if(!line) return
    inArr.push(line)
    if(inArr.length === 1){
        let x = +inArr[0]
        //解法一
        // let x = inArr[0].split('')
        // let f = ''
        // if(x[0] === '-'){
        //     f = '-'
        //     x = x.slice(1)
        // }
        // let res = x.reverse()
        // res= f + res.join('') 
        // console.log(res)
        console.log(reverse(x))

    }
})
//解法二
var reverse = function(x) {
    let arr = x.toString().split('')
    let res = parseInt(arr.reverse().join(''))
    // if(res>Math.pow(2,31)-1||-res<Math.pow(-2,31)) return 0
    return x>0? res:-res
};


发表于 2020-03-01 17:27:15 回复(0)
发表于 2019-08-17 23:05:12 回复(4)
这个题目不考虑前导0也能过吗 ?
发表于 2019-08-17 22:07:31 回复(0)
#include <bits/stdc++.h>
using namespace std;

string F(string s){
    string r;
    for(int i=s.length()-1;i>=0;i--)
        r += s[i];
    return r;
}

int main(){
    string s, r;
    while(cin>>s){
        bool sign = false;
        if(s[0]=='-')
            r = '-' + F(s.substr(1));
        else
            r = F(s);
        cout<<r<<endl;
    }

    return 0;
}

发表于 2019-07-11 07:39:17 回复(0)
package main

import (
    "fmt"
)

func main() {
    var x int
    fmt.Scan(&x)
    if x==-0{
        fmt.Print("-0")
        return
    }
    flag:=true
    if x<0{
        flag=false
        x=-x
    }
    ans:=0
    for x>0{
        ans=ans*10+x%10
        x/=10
    }
    if !flag{
        ans=-ans
    }
    fmt.Print(ans)
}

发表于 2023-03-21 12:38:45 回复(0)
转为字符串
#include<stdio.h>
#include<string.h>
int main()
{
    char a[100];
    int i;
    while (gets(a))
    {
        if(a[0]=='-')
        {
            printf("-");
            for(i=strlen(a)-1;i>=1;i--) printf("%c",a[i]);
        }
        else
        {
            for(i=strlen(a)-1;i>=0;i--) printf("%c",a[i]);
        }
        printf("\n");
    }
    return 0;
}


发表于 2021-06-28 15:55:46 回复(0)
#include<iostream>
#include<string>
int main()
{
    int x;
    while(std::cin>>x)
    {
        if(x==-0)std::cout<<"-0"<<std::endl;
        else
        {
            std::string s=std::to_string(x);
        if(s[0]!='-')
        {
            for(int i=s.size()-1;i>=0;i--)std::cout<<s[i];
            std::cout<<std::endl;
        }
        else
        {
            std::cout<<"-";
            for(int i=s.size()-1;i>0;i--)std::cout<<s[i];
            std::cout<<std::endl;
        }
        }
        
    }
    return 0;
}
发表于 2020-09-08 13:47:53 回复(0)
import sys
in_str = sys.stdin.readline().strip()
if in_str[0] == '-':
    print('-'+in_str[1:][::-1])
else:
    print(in_str[::-1])

发表于 2020-06-29 16:35:17 回复(0)
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        String num=sc.nextLine();
        char[] chnum=num.toCharArray();
    
    //    System.out.println(num);
        Stack<String> st=new Stack<String>();
        int i;
        int fl=0;
        
        if(chnum[0]=='-') {
            
            System.out.print('-');
            fl++;
        }
        
        
        for(i=fl;i<chnum.length;i++) {
            
            st.add(String.valueOf(chnum[i]));
            
            
        }
        while(!st.isEmpty()) {
            
            System.out.print(st.pop());
            
            
        }
    
    }
}
发表于 2020-06-01 21:00:09 回复(0)
import java.util.*;

public class  Main{
    public static void main(String[] args){
        long qian;
        long  hou=0;
        Scanner ss=new Scanner(System.in);
        String s=ss.nextLine();
        int x=Integer.parseInt(s);
        if(x==-0){
            System.out.println("-0");
            return;
        }
        while(x!=0){
            qian=x%10;
            x=x/10;
            hou=hou*10+qian;
             }
        System.out.println(hou);
    }
}

发表于 2020-05-25 03:02:57 回复(0)
#include<iostream>
(720)#include<string>
#include<algorithm>

using namespace std;

int main(void){
    string s;
    cin>>s;
    string temp;
    string ans;
    if (s[0] == '-'){
        temp = s.substr(1);
        reverse(temp.begin(), temp.end());
        ans = "-" + temp;
    }
    else{
        reverse(s.begin(), s.end());
        ans = s;
    }
    cout<<ans<<endl;
    return 0;
}

发表于 2020-05-12 15:53:47 回复(0)
发表于 2020-04-11 12:15:23 回复(0)
var arr=readline().split('')
console.log(arr[0]=='-'?('-'+arr.slice(1).reverse().join('')):arr.reverse().join(''))

发表于 2020-04-08 17:30:22 回复(0)