反转正整数

 1 /**
 2  * 反转正整数
 3  */
 4 import java.util.Scanner;
 5
 6 public class ReverseNumber {
 7     public static void main (String[] args) {
 8         Scanner input = new Scanner(System.in);
 9         System.out.print("输入两位以上的正整数: ");
10         int number = input.nextInt();
11         int reversedNumber = reverse(number);
12         System.out.println("The reversed number for " + number + " is " + reversedNumber);
13     }
14
15     // 取值解法
16     public static int reverse(int numberP) {
17         int reversedNumber = 0;
18         int temp = 0;
19         int digitsTester = 0;
20         // 计算出numberP是几位的正整数
21         // e.g. i = 10; i < 234; i *= 10
22         for (int i = 10; i < numberP; i *= 10) {
23             // digitsTester = 100
24             digitsTester = i;
25             // if i = 1000 > 234 , digitsTester = 1000 / 10 = 100
26             if (i > numberP) {
27                 digitsTester /= 10;
28 //                break;
29             }
30         }
31         // 求出100是10的几次方
32         int log10 = (int)Math.log10(digitsTester);
33         while (numberP != 0) {
34             for (int i = 0; i <= log10; i++) {
35                 // temp = 234 / 100 = 2
36                 temp = numberP / digitsTester;
37                 // numberP = 234 / 100 (=2) * 100 = 200
38                 numberP = numberP - numberP / digitsTester * digitsTester;
39                 // digitsTester = 100 / 10 = 10
40                 digitsTester = digitsTester / 10;
41                 // reversedNumber = 0 + 2 * 10^0
42                 reversedNumber = reversedNumber + temp * (int)Math.pow(10, i);
43             }
44         }
45         return reversedNumber;
46     }
47 }
时间: 2024-10-15 08:13:44

反转正整数的相关文章

九度OJ 1089 数字反转

题目1089:数字反转 时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2591 解决:1425 题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转. 输入: 第一行一个正整数表示测试数据的个数n. 只有n行,每行两个正整数a和b(0<a,b<=10000). 输出: 如果满足题目的要求输出a+b的值,否则输出NO. 样例输入: 2 12 34 99 1 样例输出: 46 NO #in

1025.反转链表

给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转.例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4:如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转. 输入格式: 每个输入包含1个测试用例.每个测试用例第1行给出第1个结点的地址.结点总个数正整数N(<= 105).以及正整数K(<=N),即要求反转的子链结点的个数.结点的地址是5位非负整数,NULL地址用-1表示. 接下来有N行,每行格式为: Address Data Ne

B1025. 反转链表 (25) A1074

给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转.例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4:如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转. 输入格式: 每个输入包含1个测试用例.每个测试用例第1行给出第1个结点的地址.结点总个数正整数N(<= 105).以及正整数K(<=N),即要求反转的子链结点的个数.结点的地址是5位非负整数,NULL地址用-1表示. 接下来有N行,每行格式为: Address Data Ne

ZOJ 1151 Word Reversal反转单词 (string字符串处理)

链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=151 For each list of words, output a line with each word reversed without changing the order of the words. This problem contains multiple test cases! The first line of a multiple input is

每日一九度之 题目1089:数字反转

时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3452 解决:1892 题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转. 输入: 第一行一个正整数表示测试数据的个数n. 只有n行,每行两个正整数a和b(0<a,b<=10000). 输出: 如果满足题目的要求输出a+b的值,否则输出NO. 样例输入: 2 12 34 99 1 样例输出: 46 NO //Asimple #incl

华为OJ平台——超长正整数相加

题目描述: 请设计一个算法完成两个超长正整数的加法. 输入 输入两个字符串数字 输出 输出相加后的结果,string型 样例输入 99999999999999999999999999999999999999999999999999 1 样例输出 100000000000000000000000000000000000000000000000000 思路: 在Java中,这样的大数运算可以直接用BigInteger类中的方法来进行运算和处理,那样本题没有任何意义了 因此在本方法中,不直接采用该类中

九度OJ—题目1089:数字反转

题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转. 输入: 第一行一个正整数表示测试数据的个数n. 只有n行,每行两个正整数a和b(0<a,b<=10000). 输出: 如果满足题目的要求输出a+b的值,否则输出NO. 样例输入: 2 12 34 99 1 样例输出: 46 NO 来源: 2005年上海交通大学计算机研究生机试真题 答疑: 解题遇到问题?分享解题心得?讨论本题请访问:http:

PAT 1025. 反转链表 (25)

给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转.例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4:如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转. 输入格式: 每个输入包含1个测试用例.每个测试用例第1行给出第1个结点的地址.结点总个数正整数N(<= 105).以及正整数K(<=N),即要求反转的子链结点的个数.结点的地址是5位非负整数,NULL地址用-1表示. 接下来有N行,每行格式为: Address Data Ne

PAT-乙级-1025. 反转链表 (25)

1025. 反转链表 (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一个常数K以及一个单链表L,请编写程序将L中每K个结点反转.例如:给定L为1→2→3→4→5→6,K为3,则输出应该为3→2→1→6→5→4:如果K为4,则输出应该为4→3→2→1→5→6,即最后不到K个元素不反转. 输入格式: 每个输入包含1个测试用例.每个测试用例第1行给出第1个结点的地址.结点总个数正整数N(<= 105)