机试题——将十进制转换成二至十六进制

#include<stack>
#include <iostream>
#include<algorithm>
using namespace std;
 void F(int num,int r,stack<int> &s){
 	while(num!=0){
 		int k;
 		k=num%r;
 	   s.push(k);
 	   num=num/r;
	 }
	 while(!s.empty()){
	 	 int a= s.top();
		  cout<<a;
		  s.pop();	
	 }
 }
 int main(){
 	while(1){
 	int n,r;
 	stack<int> out; 
 	cin>>n;
 	cin>>r;
 	F(n,r,out);
	 }
 }

注释

n为输入数字为十进制
r为要转换成多少进制
原理就是:
举例子:十进制的10转八进制
10%8=2 进栈
10/8=1
1%8=1;进栈
1/8=0;
所以 10的八进制为12

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值