题解 | #牛牛的四叶玫瑰数#

牛牛的四叶玫瑰数

https://www.nowcoder.com/practice/b1ee23676ad54919b50aa1a09da1704e

#include <stdio.h>
#include<math.h>

// 计算 base 的 n 次幂
int pow4(int base) {
    return base * base * base * base;
}

// 检查数字是否为四叶玫瑰数
int isFourLeafRose(int num) {
if (num < 1000 || num > 9999) // 四叶玫瑰数是四位数
        return 0;
    int sum = 0, temp = num;
    while (temp > 0) {
        int digit = temp % 10;
        sum += pow4(digit);
        temp /= 10;
    }
    return sum == num;
}

// 递归地遍历区间 [l, r] 的所有数字找出四叶玫瑰数
void findFourLeafRoses(int l, int r) {
    // 递归终止条件
    int count = 0;
    if (l > r)
        return;
     if(l==1)
     printf("%d ",1);
    if (isFourLeafRose(l))
    { 
 printf("%d ", l);
    }
   
    // 递归的进行下一个数的判断
    findFourLeafRoses(l + 1, r);
}

int main() {
    int l, r;
    scanf("%d %d", &l, &r);
    
    findFourLeafRoses(l, r);

    return 0;
}

全部评论

相关推荐

水墨不写bug:疑似没有上过大学
点赞 评论 收藏
分享
06-11 17:39
门头沟学院 Java
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务