2556 - 函数练习-2

数字反转:

编写一个函数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;

}








时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题