2556 - 函数练习-2
时间限制 : 1 秒
内存限制 : 128 MB
数字反转:
编写一个函数reverse,其功能是将一个正整数反转。如123可以反转为321,3682可以反转为2863,1200可以反转为21。
reverse函数的原型可以参考如下:
int reverse(int num);
其中num为要反转的数,函数的返回值为反转后的数。
从键盘上输入一个正整数n,代表要反转的数的个数,接着输入n个正整数,将这些正整数依次反转并输出。输出的数据之间用空格分隔。
题目输入
8 24367 19791 6759 18283 13165 18027 14290 5675
题目输出
76342 19791 9576 38281 56131 72081 9241 5765
输入/输出样例
输入格式
6 746 1422 18 4300 8 4076
输出格式
647 2241 81 34 8 6704
C语言解答
#include<stdio.h> int reverse(int num) { int i,t,f; int b[100]; int a,h; int sum=0; for(i=0;num!=0;i++) { b[i]=num%10; num=num/10; } t=i; f=t; for(i=0;i<t;i++) { t=f; h=t-i; for(a=1;h>1;h--) { a=a*10; } sum= sum+b[i]* a; } return sum; } int main() { int n,i; int a,b; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&b); a=reverse(b); printf("%d ",a); } return 0; }
C++解答
#include<stdio.h> #include<math.h> int main() { int reverse(int a); int a[100], n, i; scanf("%d", &n); for(i=0; i<n; i++) { scanf("%d", &a[i]); } for(i=0; i<n; i++) { a[i] = reverse(a[i]); } for(i=0; i<n; i++) { printf("%d ", a[i]); } } int reverse(int a) { int b, i, f=10, c=0, d=0; for(i=0; i<9; i++) { if(a==0)break; b = a%10; c = b; d += c; if(a>9) { d*=f; } a /= 10; } return d; }
Java解答
import java.util.Scanner; class Main { public static void main(String args[]){ Scanner reader=new Scanner(System.in); int n=reader.nextInt(); Main test=new Main(); int[] a=new int[n]; for(int i=0;i<n;i++){ a[i]=reader.nextInt(); } for(int i=0;i<n-1;i++){ test.reverse(a[i]); } test.reverse1(a[n-1]); } public void reverse(int num){ String s =String.valueOf(num); StringBuilder builder = new StringBuilder(s); s = builder.reverse().toString(); int a=Integer.parseInt(s); System.out.print(a+" "); } public void reverse1(int num){ String s =String.valueOf(num); StringBuilder builder = new StringBuilder(s); s = builder.reverse().toString(); int a=Integer.parseInt(s); System.out.print(a); } }