(C++) 使用函数的回文数
(C++) Palindrome Numbers using Function
#include <iostream>
using namespace std;
bool pals(int n) {
int remainder;
int reverse=0;
while(n>0){
remainder=n%10;
reverse=reverse*10+remainder;
n=n/10;
}
return reverse;
}
int main() {
int nums;
cout<<"Input Desired Number: ";
cin >>nums;
if(pals(nums)) {
cout <<nums<<" palindrome";
}
else {
cout <<nums<<" not a palindrome";
}
return 0;
}
如果不是,则继续返回“回文”。
我的代码中是否有遗漏或错误的地方。
任何供将来参考的提示或指示也很好。谢谢!
任何反馈都很棒!谢谢!
您的问题是因为您 return 从函数中输入一个数字并将其转换为布尔值,因此每个数字都会被截断为真值。
您应该在函数内部检查它是否是回文,return 1/0 结果或更好的布尔值。
可在以下内容中找到有关所描述行为的详尽解释 link:
#include <iostream>
using namespace std;
bool pals(int n) {
int remainder;
int reverse=0;
while(n>0){
remainder=n%10;
reverse=reverse*10+remainder;
n=n/10;
}
return reverse;
}
int main() {
int nums;
cout<<"Input Desired Number: ";
cin >>nums;
if(pals(nums)) {
cout <<nums<<" palindrome";
}
else {
cout <<nums<<" not a palindrome";
}
return 0;
}
如果不是,则继续返回“回文”。
我的代码中是否有遗漏或错误的地方。
任何供将来参考的提示或指示也很好。谢谢!
任何反馈都很棒!谢谢!
您的问题是因为您 return 从函数中输入一个数字并将其转换为布尔值,因此每个数字都会被截断为真值。
您应该在函数内部检查它是否是回文,return 1/0 结果或更好的布尔值。
可在以下内容中找到有关所描述行为的详尽解释 link: