水仙花

China-小方格 发表于2019年07月20日
<p>我认为写程序的时候为了让你们自己后续能看懂还是要在后面写备注,别以后稍微复杂点的就看不懂了</p><p># include &lt;stdio.h&gt;</p><p>int main()</p><p>{</p><p> /*水仙花数是指一个N位的正整数(N &gt;= 3),它的每个位上的数字的N次幂之和等于它本身。例如:153 = 1 3 + 5 3 + 3 3*/</p><p> int n = 3;</p><p> //输入这个n位数&nbsp;</p><p>// scanf(&quot;%d&quot;,&amp;n);</p><p> int first = 1;</p><p> int i = 1;</p><p><br ></p><p> while(i &lt; n){</p><p> first *= 10; //先算出N位数的第一个数字,如N=3,则第一位为100;&nbsp;</p><p> i ++; //看一共循环了多少次&nbsp;</p><p> }</p><p> printf(&quot;first = %d,i = %d;\n&quot;,first,i); //输出查看变量值&nbsp;</p><p>&nbsp;</p><p> i = first;</p><p> while(i &lt; first * 10){ // 便利100-999</p><p> int t = i;</p><p> int sum = 0; //用于存放 N位数 的 &nbsp;每位数的N次方 相加的结果&nbsp;</p><p> </p><p> do{</p><p> int d = t%10; //分解每一个整数 i 的每个位数 &nbsp;</p><p> t /= 10;</p><p> int p = 1;</p><p> int j = 0;</p><p> while(j &lt; n){</p><p> p *= d; //通过循环算出 &nbsp;分解出的i每个位数 的 &nbsp;N次幂结果&nbsp;</p><p> j ++;</p><p> }</p><p> sum += p; //每个个位数的N次幂相加和 </p><p> }while(t &gt; 0);</p><p><br ></p><p> if(sum == i){</p><p> printf(&quot;%d\n&quot;,i); //每个位上的n次幂之和等于i则输出这个数&nbsp;</p><p> }</p><p> i ++;&nbsp;</p><p> }</p><p> </p><p> return 0;</p><p>}</p><p><br ></p>
3 回复

    1楼

  • China-小方格 发表于2019年07月20日
    0 | 0 | 举报
    <p>有必要先设定一个数,然后在在这个数的基础上取分解判断它</p>
    China-小方格 发表于2019年07月20日
    添加评论
  • 2楼

  • 十六棵石榴树 发表于2019年07月20日
    0 | 0 | 举报
    <p>也可以用pow函数,能简洁一些</p>
    十六棵石榴树 发表于2019年07月20日
    添加评论
  • 3楼

  • 一只咪球 发表于2019年07月24日
    0 | 1 | 举报
    #include&lt;stdio.h&gt;<br >int main()<br >{<br >&nbsp;&nbsp; &nbsp;int i,g,s,b;<br >&nbsp;&nbsp; &nbsp;for(i=100;i&lt;=999;i++){<br >&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;b=i/100;<br >&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;s=(i%100)/10;<br >&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;g=i%10;<br >&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(i==(b*b*b+s*s*s+g*g*g)){<br >&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;printf(&quot;%d\n&quot;,i);<br >&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br >&nbsp;&nbsp; &nbsp;}<br >&nbsp;&nbsp; &nbsp;return 0;<br ><p>} <br ></p><p>感觉这样简洁很多<br ></p>
    一只咪球 发表于2019年07月24日
    添加评论