给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零,例如输入-380,反转后得到的新数为-83。
【输入】
输入共 1 行,一个整数N。
-1,000,000,000 ≤ N≤ 1,000,000,000。
【输出】
输出共 1 行,一个整数,表示反转后的新数。
【输入样例】
123
【输出样例】
321
【提示】
【输入输出样例 2】
输入:
-380
输出:
-83
教材上不会的,请教一下
数字反转(c++
答案:2 悬赏:0 手机版
解决时间 2021-02-16 04:44
- 提问者网友:流星是天使的眼泪
- 2021-02-16 01:12
最佳答案
- 五星知识达人网友:孤老序
- 2021-02-16 01:18
#include <bits/stdc++.h>
using namespace std;
char st[233];
int main(){
scanf("%s",&st);
int but=0;
if (st[0]=='-') printf("-"),but++;
if (st[but]=='0'){
printf("0");return(0);
}
int top=100,flag=0;
while (top>=but){
if (isdigit(st[top])){
if (st[top]=='0'){
if (flag) printf("0");
}else
printf("%d",st[top]-'0'),flag=1;
}
top--;
}
}
using namespace std;
char st[233];
int main(){
scanf("%s",&st);
int but=0;
if (st[0]=='-') printf("-"),but++;
if (st[but]=='0'){
printf("0");return(0);
}
int top=100,flag=0;
while (top>=but){
if (isdigit(st[top])){
if (st[top]=='0'){
if (flag) printf("0");
}else
printf("%d",st[top]-'0'),flag=1;
}
top--;
}
}
全部回答
- 1楼网友:山君与见山
- 2021-02-16 02:51
你那句while(a=!0);肯定错了(!0)一直为真会死循环的,还有
b=a%10;
cout<>a;
do
{ b=a%10;
c=a/10;
a=10*b+c;
cout<
}while(0);
这个do ----while() 若你只是调换两位的话 可以省了,没起到作用,若是任意的这个就另当别论。、
希望对你有帮助!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯