10進位制轉n進位制與n進位制轉10進位制
阿新 • • 發佈:2019-02-04
10進位制轉n進位制
#include<stdio.h> int main() { int n,m; int len=0; char ans[1100]; char num[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; scanf("%d%d",&n,&m); while (n) { ans[len++]=num[n%m]; n=n/m; } for(int i=len-1;i>=0;i--) { printf("%c",ans[i]); } return 0; }
n進位制轉10進位制
#include<stdio.h> #include<string.h> #include<math.h> int n; char m[1100]; int len; void Ary(); void Ary_(); int main() { scanf("%d",&n); scanf("%s",m); len=strlen(m); if(n<10) { Ary(); } else if(n>10&&n<17) { Ary_(); } else { printf("%s",m); } return 0; } void Ary() { int i,j; float sum=0; //pow得到為浮點型的數 float mid; //pow得到為浮點型的數 for(i=len-1,j=0;i>=0;i--,j++) { mid=m[i]-'0'; sum+=mid*pow(n,j); } printf("%.0f",sum); } void Ary_() { int i,j; float sum=0; float mid=0; for(i=len-1,j=0;i>=0;i--,j++) { if(m[i]>='A'&&m[i]<='F') { mid=m[i]-'A'+10; sum+=mid*pow(n,j); } else { mid=m[i]-'0'; sum+=mid*pow(n,j); } } printf("%.0f",sum); }