1589 - 整型存储

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

写一个类,能接受int 型的变量,接收变量后能存储原变量(譬如12345)和其反向变量

(54321),最多处理数量为10 个,当输入达到10 个或者输入变量为的时候停止。并且在

类销毁前输出存储的所有变量。

题目输入

输入若干个整数。

题目输出

按类里存储的数个数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--;
			}
		
	}
}