求100-1000之间的回文的个数

img


求100-1000之间的回文都个数,编写hws的函数来判断其参数是不是回文数。输出格式如样张所示。

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;
}

如果答案对您有所帮助,望采纳。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    解决方案

    计算100-1000之间回文数的个数

    回文数的定义:数字从左往右与从右往左的顺序一样。

    从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是回文数
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632