[C] 166 hãy tìm giá trị đầu tiên trong mảng có dạng 2^k. ko có thì trả về 0

Tác giả:

  • Trần Hán Huy – tranhanhuy.wordpress.com

Sách:

  • Bài tập kĩ thuật lập trình C/C++ – Nguyễn Tấn Trần Minh Khang

Đề bài

  • 166 hãy tìm giá trị đầu tiên trong mảng có dạng 2^k. ko có thì trả về 0

Code

int dang2k(int n)
{
   int du;
   if (n<=1)
       return 1;
   do
   {
       du =  n % 2 ;
       if (du != 0)
           return 0;
       n = n/2;
   } while (n>=2);
   return 1;
}
int bai166(int a[], int n)
{
   for(int i=0 ; i<n; i++)
       if (dang2k(a[i])==1)
           return a[i];
   return 0;
}

Leave a comment