当前位置: 首页 > article >正文

牛客网刷题 ——C语言初阶(5操作符)——BC111 小乐乐与进制转换

1.题目描述:BC111 小乐乐与进制转换

牛客网OJ链接
描述:小乐乐在课上学习了二进制八进制与十六进制后,对进制转换产生了浓厚的兴趣。因为他的幸运数字是6,所以他想知道一个数表示为六进制后的结果。请你帮助他解决这个问题。

输入描述:输入一个正整数n (1 ≤ n ≤ 109)
输出描述:输出一行,为正整数n表示为六进制的结果

示例1
输入:6
输出:10

示例2
输入:120
输出:320

2. 思路

2进制的表示:
在这里插入图片描述
十进制转2进制的方式是除2取余,逆序排列
例:求17的二进制表示 :10001
在这里插入图片描述

那么6进制的表示就是:
在这里插入图片描述
十进制转6进制的方式是除6取余,我们需要它所有的余数,然后最后逆序打印,例如17的6进制表示就应该是:25
在这里插入图片描述

输入一个数组num,我们需要获取到它除6的余数:
num%6
然后还需要num/6 用这个数字继续除6取余,获取余数
这里应该有一个循环,循环条件就是num/6 ,当num/6==0 的时候不在继续进去循环。
我们把余数全部放在一个数组里面,最后倒序打印数组就能得到我们想要的

3. 代码实现

///小乐乐在课上学习了二进制八进制与十六进制后,对进制转换产生了浓厚的兴趣。
//因为他的幸运数字是6,所以他想知道一个数表示为六进制后的结果。请你帮助他解决这个问题。

#include<stdio.h>

int main()
{
	int n = 0;
	scanf("%d", &n);
	int arr[100] = { 0 };
	int i = 0;
		while (n)
		{
			arr[i] = n % 6;
			n /= 6;
			i++;
		}
		int k = 0;
		for (k=i-1 ;k >=0; k--)
		{
			printf("%d", arr[k]);
		}
	return 0;
}

在这里插入图片描述

在这里插入图片描述

4.小结

写这个代码的时候,我就几次进入误区,获取余数能想到,

  1. 但是我想不到把他们放在哪里,是看了别人的解题思路,才想到可以放在数组里。
  2. 后面倒序打印的时候,我就在想怎么打印数组,
    我对于打印数组一直都是知道数组长度,然后使用for循环进行打印。
    这里实在是没想到解决办法,又去网上看了别人的,一下子反应过来,我打印数组的值的时候我只是需要知道数组下标是多少,我现在已经知道我们的下标 i 的值就可以直接打印了呀。
  3. 但是由于看了别人的代码,里面有个i- - ,又把我带偏了,我自己用的时候把操作符学的后置- -全忘记了。最后经过调试终于搞明白了!要有意识的去使用自己学到的东西,不能学了但是不会用,那还是没有掌握好。

http://www.kler.cn/a/467533.html

相关文章:

  • 前端路由 Hash 和 History 模式原理对比区别
  • GNU链接器简介
  • 【算法刷题】链表
  • 1.4 java反射机制 简单的java反射机制实践
  • Linux修改磁盘UUID
  • 【openwrt】OpenWrt 路由器的 802.1X 动态 VLAN
  • 代码随想录算法训练营第五十天|图论基础|深度优先搜索理论基础|KM98.所有可达路径|广度优先搜索理论基础
  • 中高级运维工程师运维面试题(十一)之 Docker
  • 职场常用Excel基础03-自定义排序
  • 法律专业legal case的留学论文写作技巧分析(1)
  • 开源网安携手重庆人文科技学院开展软件安全实训,赋能新时代西部大开发
  • 关于置信学习的文献综述
  • 算法-判断是否是完全有效平方数-二分法查找
  • 黑马跟学.苍穹外卖.Day01
  • HTML5新特性|06 文本效果text-shadowword-wrap自定义字体
  • PyTorch不同优化器比较
  • 自动生成RESTful API——Spring Data Rest
  • C# 内置值类型
  • 基于Spring Boot的紧急物资管理系统
  • ARP攻击的原理和实现 (网络安全)