PTA 7-472 有趣的三位数

PTA 7-472 有趣的三位数

分数 10
作者 程立
单位 河南工业大学

数字中有很多有趣的三位数,像,大家熟知的水仙花数,其各位数字的立方和等于该数本身。拿153来说,我们有:153 = 1
3
+5
3
+3
3

本题在上述的表达式上做一些变化,求三位数ABC使得 ABC=A
1
+B
2
+C
3

本题要求编写程序,输出给定正整数M和N区间内的所有三位数ABC使得 ABC=A
1
+B
2
+C
3

输入格式:
输入在一行中给出两个正整数M和N(100≤M≤N≤999)。

输出格式:
顺序输出M和N区间内所有符合要求的三位数,每一行输出一个数。若该区间内没有符合要求的三位数,则输出"Not Found"。

输入样例1:
在这里给出一组输入。例如:

100 500
输出样例1:
在这里给出相应的输出。例如:

135
175
输入样例2:
在这里给出一组输入。例如:

800 900
输出样例2:
在这里给出相应的输出。例如:

Not Found
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB

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

void place(int inte, int *p){    //拆分各位
    int _inte = inte;
    while(_inte > 0){
        *p = _inte % 10;
        _inte /= 10;
        p++;
    }    
}

int main(){

    int m, n, sum, flag = 0;
    int number[3];
    int *arr = NULL;    //定义指针
    arr = &number;    //指向数组首地址
    scanf("%d %d", &m, &n);
    
    for(int i = m; i <= n; i++){    //范围内的数
        sum = 0;    //求和
        place(i, arr);    //调用函数
        sum = pow(number[0], 3) + pow(number[1], 2) + number[2];
        if(sum == i){    //满足要求时
            flag = 1;    //标记有符合要求的三位数
            printf("%d\n", i);
        }
    }
    if(flag == 0){    //如果没有满足要求的三位数
        printf("Not Found\n");
    }
    
    return 0;
}

解题思路:
定义一个函数拆分三位数的各位,定义一个数组储存拆分的各位,按要求求和再进行判断是否拆分后按要求求的和是否与原三位数相等

归属知识点:
指针
数组
循环结构
条件判断

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值