社区讨论
进制转换 0分
学术版参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mi86e28l
- 此快照首次捕获于
- 2025/11/21 09:22 4 个月前
- 此快照最后确认于
- 2025/11/21 09:22 4 个月前
(非洛谷题目)
题目描述 Description
给出一个位数B,以及一个进制K和一个进制J。首先找出在进制K下的一个最大的位数为B的数字,然后将这个K进制数字转化为J进制来表示。
输入描述 Input Description
输入为三个数字,分别为:位数B,进制K,进制J。之间用空格隔开,输入为一行。
输出描述 Output Description
输出为两行,两个数字,第一行是K进制下最大的B位数,第二行是这个数字转化为J进制下的数字。
样例输入 Sample Input
2 2 10
样例输出 Sample Output
11 3
数据范围及提示 Data Size & Hint
1<=B, K, J<=10
??请问为什么0分
code:
CPP#include<iostream>
#include<sstream>
#include<cmath>
using namespace std;
int b,k,j,temp,num,ans[100],x;
string s;
int main()
{
ios::sync_with_stdio(0);
cin>>b>>k>>j;
for(int i=0;i<b;i++)
{
cout<<k-1;
num=num*10+k-1;
}
cout<<' ';
stringstream ss;
ss<<num;
ss>>s;
num=0;
for(int i=s.size()-1;i>=0;--i)
{
num+=(s[i]-'0')*pow(b,temp);
temp++;
}
while(num)
{
ans[x]=num%j;
num/=j;
++x;
}
for(int i=x-1;i>=0;--i)
cout<<ans[i];
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...