zoukankan      html  css  js  c++  java
  • 蓝桥杯 五次方数 暴力

    问题描述
      对一个数十进制表示时的每一位数字乘五次方再求和,会得到一个数的五次方数
      例如:1024的五次方数为1+0+32+1024=1057
      有这样一些神奇的数,它的五次方数就是它自己,而且这样的数竟然只有有限多个
      从小到大输出所有这样的数
    输出格式
      每个数独立一行输出
    按照题意,0和1也应该是五次方数。
    但是蓝桥杯测评的标准输出是这样

     理解为题意没有表达清楚,就按照不考虑0和1的情况来做。

    然后暴力遍历一下,这个也是有个细节操作,拆出这个数的每一位,然后直接求这一位的五次方。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int main() {    
     4     for (int i = 2; i <= 100000000; i++) {
     5         int t = i;
     6         int sum = 0;
     7         while (t != 0) {
     8             int a = t % 10;
     9             sum += a * a * a * a * a;
    10             t /= 10;
    11         }
    12         if (sum == i) {
    13             cout << i << endl;
    14         }
    15     }
    16     return 0;
    17 }

    输出为

    这种题目其实可以先写程序运算好,然后直接输出。

    比如改为这样。

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int main() {
     4     cout << 4150 << endl;
     5     cout << 4151 << endl;
     6     cout << 54748 << endl;
     7     cout << 92727 << endl;
     8     cout << 93084 << endl;
     9     cout << 194979 << endl;
    10     return 0;
    11 }

    但是还有疑问,写的for循环2~100000000

    有没有可能在上面for循环的范围之外还存在五次方数。

    就是怎样证明我们已经找出了所有的五次方数。

    证明:

    一位数9的五次方数为9^5 = 59049

    二位数99的五次方数为9^5 * 2 = 118098

    三位数999的五次方数为9^5 * 3 = 177147

    为方便叙述,看这个图

     这就发现了,6位数每位全为9的五次方数为6位数,还有可能。

    7位数每位全为9的五次方数为6位数。所以绝对不可能存在7位数的五次方数。

    就是说位数每加1,最大的五次方数的范围加上9^5,跟不上位数的增长。

    所以写个for循环从2~1000000,已经足够找出所有的五次方数了。

    证明参考自https://blog.dotcpp.com/a/8677-14

  • 相关阅读:
    JavaScript模态对话框类
    事件模块的演变(1)
    html5中可通过document.head获取head元素
    How to search for just a specific file type in Visual Studio code?
    What do 'lazy' and 'greedy' mean in the context of regular expressions?
    正则非获取匹配 Lookahead and Lookbehind ZeroLength Assertions
    regex length 正则长度问题
    Inversion of Control vs Dependency Injection
    How to return View with QueryString in ASP.NET MVC 2?
    今天才发现Google Reader
  • 原文地址:https://www.cnblogs.com/fx1998/p/12739026.html
Copyright © 2011-2022 走看看