程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
输入格式:
每个测试是一个3位的正整数。
输出格式:
输出按位逆序的数。
输入样例:
123
输出样例:
321
鸣谢安阳师范学院软件学院李康康同学补充数据!
不知道大家这题是怎么解决的。我用的是队列。
#include <iostream>
#include <cmath>
#include <string>
#include <queue>
using namespace std;
int main (){
string str;
while(cin>>str){
queue<char> que;
for(int i=str.length()-1;i>=0;i--){
if(que.empty()==1&&str[i]=='0'){
continue;
}else{
que.push(str[i]);
}
}
while(!que.empty()){
cout<<que.front();
que.pop();
}
cout<<endl;
}
return 0;
}
我先去看看大佬怎么写的。
#include <iostream>
using namespace std;
int main (void)
{
int num;
int a, b, c;
scanf("%d", &num);
a = num / 100;
b = (num - 100 * a) / 10;
c = num % 10;
printf("%d", 100*c + 10*b + a);
return 0;
}
他们的好像还更简便一些,直接解决了前导0的问题。
3位数逆序输出算法
探讨了两种处理三位正整数逆序输出的算法方案,一种使用队列去除前导0,另一种通过数学运算直接解决,展示了简洁高效的实现方式。
1731

被折叠的 条评论
为什么被折叠?



