Self-Numbers问题怎样用C++解决

有一类数叫Self-Numbers,任取一个正整数n,界说f(n)为加上它每一位数字的和,例如:f(75)=75+7+5=87,以肆意一个整数n为起点可以按照此方式机关出无限递增的序列:n,f(n),f(f(n)),f(f(f(n)))……。若是从33起头,下一个数就是33+3+3=39,接着是39+3+9=51,然后是51+5+1=57,可以发生如许一个序列:33,39,51,57,69,84,96,111,114,120,123,129,141……,我们将数字n称为f(n)的发生器。在上例中,33是39的发生器,39是51的发生器,51是57的发生器。一个没有发生器的数称作Self-Number,例如100以内前13个Self-Number是1,3,5,7,9,20,31,42,53,64,75,86,97。将第i个Self-Number暗示为s[i],就形当作一个序列s[1]=1,s[2]=3,s[3]=5……

东西/原料

  • C++

方式/步调

  1. 1

    输入时先输入2个整数,暗示发生器的数值规模,规模在10000以内,以及要输出的Self-Number个数。

    然后,输入要输出的每个Self-Number数的序号值。

  2. 2

    起首,界说一个常量,用来节制发生器的数值规模。

  3. 3

    界说各整型变量,节制法式的运行。

  4. 4

    接着,界说两个整型数组,保留各发生器所得的值,以及所得的Self-Number数。

  5. 5

    给数组sum初始化,初始值为0。

  6. 6

    接着,输入发生器n的规模,以及所输出的Self-Number的个数。

  7. 7

    界说整型数组u,存入要输出的Self-Number数的序号。

  8. 8

    用for轮回,计较各发生器n所得的f(n)值,保留在数组sum中。

  9. 9

    用while轮回,节制获得发生器n的每一位数值,并实现累加。

  10. 10

    用两重for轮回,实现判定n以内的每个数是否为Self-Number,若是不是Self-Number数,则f的值为1。

  11. 11

    若是一个数是Self-Number数,则将它保留到数组s中。

  12. 12

    然后,输出整数规模内Self-Number数的个数。

  13. 13

    最后,输出要求输出的各Self-Number数。

  14. 14

    运行法式,输入整数规模和要输出的Self-Number个数,以及各Self-Number数序号,电脑就会输出响应的Self-Number数。

注重事项

  • 作者声明:本篇经验系本人辛勤奋动的原创当作果,未经许可,回绝转载。
  • 发表于 2018-11-25 00:00
  • 阅读 ( 785 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具