2015年ブルーブリッジカップ省試合A組C/C+:奇妙な数字


A組第三題:奇妙な数字
明ちゃんは奇妙な数字を見つけた.その平方と立方はちょうど0~9の10の数字を1つずつ使って1回しか使っていません.この数字はいくらだと思いますか.
この数字を記入してください.余分な内容を記入しないでください.
分析:1.変数x 2は、数字の平分を表し、x 3は数字のドレス2を表す.1つの配列testを定義[10]、10要素は(0-9)10個の数が現れる回数を表し、x 2とx 3の各ビットを取り出し、配列の10個の要素で各数が現れる回数を識別し、1回も1を加えず、最後に配列testの10個の要素が1であるかどうかを判断する.1であれば、問題の要求を満たすことを示し、1でなければ、問題の要求を満たさない.
   #include <stdio.h>
   #include <math.h>

   int main()
   {
         //       ,      
       int i; //i      1~10000
       int bit;//    ,  25,bit = 100,   %100       
       int end;//  5    625,end = 625 % 10 = 5
       int temp;
       long long lng;
       int count = 0;//  

       for(i = 1;i < 10000;i++)
       {
           bit = 1;       //        bit  1
           temp = i; 
           while(temp)//     ,      ,  5    625,bit = 10。625 % 10 = 5
           {
               bit = bit * 10;
               temp = temp / 10;
           }

           lng = (long long)pow(i,3);

           end = lng % bit;

           if(end == i)    //      ,        
           {
               printf("i = %d
"
,i); count++; } } printf("count = %d
"
,count); }