Live2D

有一个8层灯塔,每层的灯数都是上一层的2倍,共有765盏灯。编程求最上层的灯数。

一,我读题知道765是不断的进行2的次幂之间的和得出的。然后换位思考如果把这题的类三角形图倒着放可能会更容易计算。

#include <stdio.h>

int  calc( int  i)
{
     int  j;
     int  sum =  0 ;
     for (j =  0 ; j <  8 ; j ++)
        sum+=i, i*= 2 ;
     return  sum;
}
int  main()
{
     int  i = 1 ;
     int  r;
     while ( 1 )//计算当最开始为1,2,3。。。。.看那个为首的数字8次2次幂的计算为765,然后求出这个首字母
    {
        r = calc(i);
         if (r >=  765 break ;
        i ++;
    }
     if (r ==  765 ) printf( " result = %d\n " , i);
     else  printf( " no such result\n " );
     return   0 ;

}

代码转载:童生

posted @ 2018-05-11 00:39  幽香飞狐  阅读(726)  评论(0)    收藏  举报
Live2D