i=x除10的余数,t = t乘以10+ i,最后判断t是否跟n相等
代码如下:
int hws(long n)
{
long x = n, t = 0, i;
while (x)
{
i = x % 10;
t = t * 10 + i;
x /= 10;
}
if (n == t)
return 1;
else
return 0;
}
这样试试
int hws(long n) {
long x = n, t = 0, i;
while (x > 0) {
i = x % 10;
t = t * 10 + i;
x /= 10;
}
if (n == t) {
return 1;
} else {
return 0;
}
}
#include <stdio.h>
// 判断一个数是否是回文数
int hws(long n) {
long x = n, t = 0;
while (x > 0) {
t = t * 10 + x % 10;
x /= 10;
}
return n == t;
}
int main() {
long i;
int k = 0;
for (i = 100; i <= 1000; i++) {
if (hws(i)) {
k++;
}
}
printf("100到1000之间回文数的个数为:%d\n", k);
return 0;
}
如果答案对您有所帮助,望采纳。
不知道你这个问题是否已经解决, 如果还没有解决的话:回文数的定义:数字从左往右与从右往左的顺序一样。
从100到1000之间,我们可以通过循环每个数字,判断该数字是否为回文数并记录回文数的个数。
具体实现方案如下:
# 判断一个数字是否为回文数
def is_palindrome(num):
return str(num) == str(num)[::-1]
# 初始化回文数个数
count = 0
# 循环100到1000之间的数字
for i in range(100, 1001):
# 如果该数字是回文数,则回文数个数加1
if is_palindrome(i):
count += 1
print("计算所得回文数个数为{}个".format(count))
给定一个数字,判断其是否为回文数,可以通过将数字转换为字符串,然后通过字符串的反转,判断反转后的字符串是否与原字符串相同来实现。
具体实现方案如下:
# 判断一个数字是否为回文数
def is_palindrome(num):
return str(num) == str(num)[::-1]
# 调用is_palindrome函数判断给定数字是否为回文数
if is_palindrome(12321):
print("给定数字是回文数")
else:
print("给定数字不是回文数")
综合上述两个方案,我们可以得到完整的解决方案如下:
# 判断一个数字是否为回文数
def is_palindrome(num):
return str(num) == str(num)[::-1]
# 初始化回文数个数
count = 0
# 循环100到1000之间的数字
for i in range(100, 1001):
# 如果该数字是回文数,则回文数个数加1
if is_palindrome(i):
count += 1
print("计算所得回文数个数为{}个".format(count))
# 调用is_palindrome函数判断给定数字是否为回文数
num = 12321
if is_palindrome(num):
print("给定数字{}是回文数".format(num))
else:
print("给定数字{}不是回文数".format(num))
输出结果如下:
计算所得回文数个数为90个
给定数字12321是回文数