しんしんへんかんもんだい
10進法を任意のr進法に変換
入力:n(元の10進数)、r(r進数に変換)
出力:r進数
10進数変換任意進数の長さ:
len=(int)ceil(n*log(m)/log(k));
m^n回k進数に変換する長さ
入力:m,n,k;
出力:k進数長
入力:n(元の10進数)、r(r進数に変換)
出力:r進数
#include<stdio.h>
int main()
{
int n,r,x,i,j,a[1000],h;
while(scanf("%d%d",&h,&r)!=EOF){
if(h<0)n=-h;
else n=h;
// r
for(i=0;n!=0;i++)
{
x=n%r;
a[i]=x;
n=n/r;
}
// : 2
if(h<0)printf("-");
for(j=i-1;j>=0;j--)
{
if(a[j]==10)printf("A");
else if(a[j]==11)printf("B");
else if(a[j]==12)printf("C");
else if(a[j]==13)printf("D");
else if(a[j]==14)printf("E");
else if(a[j]==15)printf("F");
else printf("%d",a[j]);
}
putchar('
');
}
return 0;
}
10進数変換任意進数の長さ:
len=(int)ceil(n*log(m)/log(k));
m^n回k進数に変換する長さ
入力:m,n,k;
出力:k進数長
#include<stdio.h>
#include<math.h>
int main()
{ double m,n,k;
int len;
while(scanf("%lf%lf%lf",&m,&n,&k)!=EOF)
{
if(m==0&&n==0&&k==0) break;
//len=(int)ceil(n*log(m)/log(k));
len=n*log(m)/log(k);
len++;
printf("%d
",len);
}
return 0;
}