用递归法将一个整数n转换成字符串,例如输入483,应输出字符串“483”。N的位数不确定,可以是任
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用递归法将一个整数n转换成字符串,例如输入483,应输出字符串“483”。N的位数不确定,可以是任相关的知识,希望对你有一定的参考价值。
用递归法将一个整数n转换成字符串,例如输入483,应输出字符串“483”。N的位数不确定,可以是任意整数。
n%10 这是对10取余数,如n=2345 时 n%10=5 ,n%10+'0' 就是在'0' 的ASCII码值上再加上n%10得到的值,如'0' 的ASCII码值是48,n%10+'0'=5+48=53。这么做是因为ASCII码表中数字字符是从0到9升序排列的,这样写就不用去考虑'0' 的ASCII码值是多少了。至于为什么用putchar而不用printf,其实putchar()函数的作用等同于printf("%c", ch),所以用printf也是可以的。只是putchar()的功能就是输出一个字符,不需要格式化,这种场合下比printf方便。 参考技术A 没有这么复杂。
#include <stdio.h>
main()
int n, a[10], i=0;
printf("input a number:\n");
scanf("%d",&n);
while(n>0)
a[i]=n%10
n/=10;
i++;
for(n=0;n<i;n++)
printf("%d",a[n]);
这个就可以了。满意请采纳 参考技术B #include <stdio.h>
int main()
int n,N[99],i=0;
scanf("%d",&n);
int x=n;
while(x!=0)
N[i]=x%10;
x=x/10;
i++;
for(i=i-1;i>=0;i--)
printf("%d",N[i]);
本回答被提问者采纳 参考技术C 输入你就用c语言解决吧。下面程序中的汇编子程序可嵌入c中使用的。供参考。
CODE SEGMENT
ASSUME CS:CODE
START: PUSH CS
POP DS
PUSH CS
POP ES
MOV AX,32767
CALL DIGUIAX
MOV AH,4CH
INT 21H
;=================================
DIGUIAX PROC NEAR
PUSH BX
PUSH DX
MOV DX,0
MOV BX,10
DIV BX
CMP AX,0
JE @DIGUIAX1
CALL DIGUIAX
@DIGUIAX1:
OR DX,30H
MOV AH,2
INT 21H
POP DX
POP BX
RET
DIGUIAX ENDP
;=================================
CODE ENDS
END START 参考技术D #include<stdio.h>
int a[100];
int k=0;
void f(int x)
int i;
a[k]=x%10;
if((i=x/10)!=0)
k++;
f(i);
void main()
int l;
scanf("%d",&l);
f(l);
int j;
for(j=k;j>=0;j--)
putchar(a[j]+'0');
把字符串转换成整数
题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
输入
+2147483647 1a33
输出
2147483647 0
我的代码:
int Getn(int x,int n) { int res = 1; while(n) { if(n&1) res*=x; n>>=1; x*=x; } return res; } int StrToInt(string str) { int len = str.length(); int res = 0; int start = 0; int flag = 0; if(str[0] == ‘+‘) start = 1; else if(str[0]==‘-‘) {
flag = 1; start = 1; } for(int i = start; i < len;i++) { if(str[i] >= ‘0‘ && str[i] <= ‘9‘) { res += (str[i]-48)*Getn(10,len-1-i); } else return 0; } if(flag) return -res; else return res; }
Getn函数是取得x的n次幂的函数,每次判断第一个字符是否为 + 或 - ,剩下的字符判断是否为数字,然后乘以相应的幂数。
或者计算公式可以用:res=res*10+str[i]-‘0‘;
以上是关于用递归法将一个整数n转换成字符串,例如输入483,应输出字符串“483”。N的位数不确定,可以是任的主要内容,如果未能解决你的问题,请参考以下文章
用递归法将一个整数n转换成字符串。例如,输人483,应输出字符串483。n的位数不确定,可以是任意位数的整数
用递归法将整数n转换成字符串,输入483,输出字符“483”,怎么理解递归函数,putchar是输出一个字符。。