Thứ Năm, 16 tháng 8, 2012

Cơ số H


2892. Cơ số H

Mã bài: BASEH



Cho một dãy số a[1],a[2],a[3],...,a[n] và hai số K,H được xác định như sau:
  • a[1]=1;
  • Nếu K chẵn thì a[K]=H*a[K/2].
  • Nếu K lẻ thì a[K]=H*a[(K-1)/2]+1.
Các bạn hãy lập trình tính số thứ K của dãy viết trong hệ cơ số H.

Input

  • Gồm một dòng duy nhất chứa 2 số K,H.

Output

  • In ra số duy nhất là kết quả bài toán.

Giới hạn

  • 0< K <=1000000000.
  • 0=< H <=2008.

Ví dụ

Input
7 110
Output
111


Link: http://vn.spoj.pl/problems/BASEH/

Solution:
DevC:

#include<stdio.h>
//#include<conio.h>



long int k;
int h;


void Doc();

void DeQuy(long int x);


int main()
{
    Doc();
    DeQuy(k);
 //   getch();
    return 0;  
}
void Doc()
{
 scanf("%d",&k);
 scanf("%d",&h);
}

void DeQuy(long int x)
{
 if(x==1) printf("%d",1);
 else if(x%2==0)   // x la so chan
      {
       DeQuy(x/2);        
       printf("%d",0);
      }
      else    // x la so le
      {
       DeQuy((x-1)/2);        
       printf("%d",1);    
      }
}

Không có nhận xét nào:

Đăng nhận xét