51个完美数字_高数D试题及答案

51个完美数字_高数D试题及答案描述JM新研究出了一种完美数字,他是这样定义的:如果一个数字xx的数位之和sumsum是一个平方数或者立方数,且xx的数位中没有出现数字2,42,4,则称xx为完美数字

描述
JM新研究出了一种完美数字,他是这样定义的:如果一个数字xx的数位之和sumsum是一个平方数或者立方数,且xx的数位中没有出现数字2,42,4,则称xx为完美数字。

前1010个完美数字为:1,8,9,10,13,17,18,31,35,361,8,9,10,13,17,18,31,35,36

请你帮JM统计一下,[1,][1,]中有多少个这样的完美数字。

【答案提交】

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个数字,填写多余的内容将无法得分。


做法,先标记一下所有的平方和立方数,然后,枚举1~, 并判断是否含有2

#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <map>  using namespace std; map<int, int> h; void init(){ 
    for (int i = 1; i * i <= ; i ++ ) h[i * i ] = 1; for (int i = 1; i * i * i <= ; i ++ ) h[i * i * i ] = 1; } bool check(int x){ 
    int sum = 0, t = x; while (t){ 
    sum += t % 10; t /= 10; } char a[100]; sprintf(a, "%d", x); string s = a; if (s.find('2')==string::npos && s.find('4')==string::npos && h[sum]) return true; return false; } int main(){ 
    //先存一下所有的平方数,和立方数 init(); int res = 0; for (int i = 1; i <= ; i ++ ){ 
    if (check(i)) res ++; } cout << res << endl; return 0; } 

今天的文章
51个完美数字_高数D试题及答案分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/60175.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注