1589 - 整型存储
时间限制 : 1 秒
内存限制 : 32 MB
写一个类,能接受int 型的变量,接收变量后能存储原变量(譬如12345)和其反向变量
(54321),最多处理数量为10 个,当输入达到10 个或者输入变量为0 的时候停止。并且在
类销毁前输出存储的所有变量。
题目输入
输入若干个整数。
题目输出
按类里存储的数个数m输出m行。每行两个数,表示原变量及其反向变量。
输入/输出样例
输入格式
12 3442 0
输出格式
12 21 3442 2443
C语言解答
int main(int argc, char* argv[]) {char str[100]; int i,len,x,cnt=0; while(~scanf("%s",str)) { x=0; if(str[0]=='0')break; ++cnt; if (cnt > 10) break; printf("%s ",str); len=strlen(str); for (i =len - 1; i >= 0;i--) x = x * 10 + (str[i] - '0'); printf("%d\n",x); } return 0; }
C++解答
#include <cstdio> #include <cstring> int main() { //freopen("test.in", "r", stdin); //freopen("test.out", "w", stdout); int cnt = 0; char s[100]; while (scanf("%s", s)) { if ('0' == s[0]) break; ++cnt; if (cnt > 10) break; printf("%s ", s); int n = strlen(s), x = 0; for (int i = n - 1; i >= 0; --i) x = x * 10 + (s[i] - '0'); printf("%d\n", x); } return 0; }
Java解答
import java.util.Scanner; public class Main{ public static void main(String[] args){ class DealInt{ private int num; public DealInt(){} public DealInt(int num){ this.num = num; } public int getNum(){ return num; } public void setNum(int num){ this.num = num; } public int invertNum(){ int temp; int savenum = 0; if(num < 0){ temp = -num; }else{ temp = num; } while(temp != 0){ //12345 savenum += temp % 10; if(temp >= 10){ savenum *= 10; } temp /= 10; } if(num < 0){ return -savenum; }else{ return savenum; } } } Scanner in = new Scanner(System.in); int count = 10; while(in.hasNext()){ int num = in.nextInt(); if(num == 0 || count == 0){ break; } DealInt dealint = new DealInt(num); System.out.print(num); System.out.println(" " + dealint.invertNum()); count--; } } }