描述
输入一个十进制小数x和一个整数n,n表示进制。输出该数字x对应的n进制数。例如,1065.8125的8进制数,则为2051.64。
输入描述
两个数字,分别是十进制小数x和进制数n,两个数字用空格隔开。
第一个是十进制小数x(整数部分位数≤6,1≤小数部分位数≤3、并且不能为0)。
第二个是进制数n(n可以是2、8、16)。
输出描述
一个数字,表示十进制小数x对应的n进制数,保留小数点后3位。
样例输入 1
12.827 8
样例输出 1
14.647
样例输入 2
128.625 16
样例输出 2
80.A
#include<bits/stdc++.h>
using namespace std;
int main() {
double x;
int n;
cin>>x>>n;
int a=int(x);
double b=x-a;
string ans="";
if(a==0)ans="0";
string str="0123456789ABCDEF";
while(a>0){
int mod=a%n;
ans=str[mod]+ans;
a=a/n;
}
ans+=".";
int cnt=0;
while(b>0&&cnt<3){
b=b*n;
int i=int(b);
ans=ans+str[i];
b=b-i;
cnt++;
}
cout<<ans;
return 0;
}