题解 | #八进制#

八进制

http://www.nowcoder.com/practice/eda051c1effc4dffa630bc8507f0c5f7

#include<iostream>
#include<cstdio>
#include<stack>

using namespace std;

//数字转字符,因为当目标进制大于10进制时,需要将数字转换成字符
char IntToChar(int target){
	if(target < 10){
		return target + '0';    //转换成0——9的字符
	}else{
		return target - 10 + 'A';//转换成A——Z的字母
	}
}

void Convert(int number,int target) {   //target为目标进制
	stack<char> myStack;
	if(number == 0){
		myStack.push('0');
	}
	while(number != 0) {
		myStack.push(IntToChar(number % target));
		number /= target;
	}
	while(!myStack.empty()) {
		printf("%c",myStack.top());
		myStack.pop();
	}
	printf("\n");
}

int main() {
	int number;
	while(scanf("%d",&number) != EOF) {
		Convert(number,8);   //参数2为目标进制
	}
	return 0;
}
全部评论

相关推荐

喜欢核冬天的哈基米很想上市:会爆NullPointerException的
点赞 评论 收藏
分享
迷茫的大四🐶:自信一点,我认为你可以拿到50k,低于50k完全配不上你的能力,兄弟,不要被他们骗了,你可以的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务