将一个整数n转换成字符串。例如;输入483,应得到字符串"483"。其中,要求用一个递归函数实现把一个正整数转换为字符串。
输入格式:
首先输入测试组数T,然后输入T组测试数据。每组测试数据输入一个整数n(−231≤n≤231−1)。
输出格式:
对于每组测试,输出转换后的字符串。
输入样例:
3
1234
-1234
0
输出样例:
1234
-1234
0
思路:
-
程序定义了一个递归函数
Change
,它接受一个整数num
作为参数。这个函数用于将整数转换为字符并打印出来。 -
在
Change
函数中,首先检查num
是否大于或等于10。如果是,函数递归调用自身,从最高位开始处理数字,并逐步向下进行。 -
当
num
小于10时,递归调用停止,函数使用putchar
函数将数字的最后一位打印出来。'0'+num%10
表达式用于将数字转换为对应的字符 -
如果读取的
num
是负数,则先使用putchar
函数打印一个负号 '-',然后将num
乘以-1,得到它的绝对值
cpp
#include <stdio.h>
void Change(int num)
{
if(num/10!=0)
Change(num/10);
putchar('0'+num%10);
}
int main()
{
int T,num;
scanf("%d",&T);
while(T--)
{
scanf("%d",&num);
if(num<0)
{
putchar('-');
num*=-1;
}
Change(num);
putchar('\n');
}
return 0;
}