递归进制转换+队列存储
2026-01-24 14:09:20
发布于:上海
15阅读
0回复
0点赞
题目要求将10进制转化为R进制再计算分数。
ch函数通过递归转换进制,得出的结果由队列a保存,judge函数负责根据队列a计算分数。
#include<bits/stdc++.h>
using namespace std;
queue<int>a;
int n,r;
void ch(int &r,int &k,queue<int>&a){
while(k>0){
a.push(k%r);
k=k/r;
ch(r,k,a);
}
return;
}
void judge(queue<int>&a,int &cnt){
while(!a.empty()){
int sz=a.front();
a.pop();
if(sz<=9&&sz>=0)cnt++;
else cnt+=(sz+55);
}
}
int main(){
cin>>n>>r;
while(n--){
int x,cnt=0;
cin>>x;
ch(r,x,a);
judge(a,cnt);
cout<<cnt<<endl;
}
return 0;
}
欢迎指正。
这里空空如也



有帮助,赞一个