数据结构实验之栈一:进制转换(难道我学了个假栈?)
来源:互联网 发布:用java编写游戏 编辑:程序博客网 时间:2024/06/06 16:38
Description
输入一个十进制非负整数,将其转换成对应的 R (2 <= R <= 9) 进制数,并输出。
Input
第一行输入需要转换的十进制非负整数;
第二行输入 R。
Output
输出转换所得的 R 进制数。
Sample Input
12798
Sample Output
2377
这道题,我一开始看的时候我的内心毫无波动,甚至还有点想笑@v@,这是我以前遇到过的一道题,甚至更简单了一点。
但是这是“栈”的训练,于是我认为应该活用新学的知识去解决这道题;
这道题的基本思路是这样的:
1.首先将输入的十进制数不断对新的进制数求余,得到的余数依次存入栈中;
2.然后将栈中的数依次输出,然后答案就出来了,没毛病,于是我写出了如下代码;
#include<bits/stdc++.h>using namespace std;int main(){ int a,b,n,i; stack<int>s; cin>>a>>n; for(i=1;a>0;i++) { s.push(a%n); //求余入栈 a=a/n; } for(int j=0;j<i;j++) { cout<<s.top(); //出栈 s.pop(); }}
(ps.这个代码是有一个硬伤的,就是没有考虑输入为0的情况)
但这个无关痛痒,大不了之后再加上嘛;
但是结果是Time error!哦哟,超时了,此刻我的内心是绝望的;
在苦思无果后,我选择用传统方法:将栈换为数组,核心思想相同;
于是得到如下代码(顺便还修复了输入为0时的bug);
#include<bits/stdc++.h>using namespace std;int main(){ int a,n,i,num[1000]; cin>>a>>n; if(a==0) cout<<0; for(i=0;a>0;i++) { num[i]=a%n; //求余入数组 a=a/n; } for(int j=i-1;j>=0;j--) { cout<<num[j]; //逆序输出 }}wow!可算AC了,真是个让人不省心的题,这还是第一道啊,看来前路路阻且长了;
看来刚学的知识还是没有熟练啊@~@。
0 0
- 数据结构实验之栈一:进制转换(难道我学了个假栈?)
- 数据结构实验之栈一:进制转换 简单栈
- 数据结构实验之栈一:进制转换(栈)
- 数据结构实验之栈一:进制转换
- 数据结构实验之栈一:进制转换
- 数据结构实验之栈一:进制转换
- 数据结构实验之栈一:进制转换
- 数据结构实验之栈一:进制转换
- SDUT 2131 数据结构实验之栈一:进制转换
- 数据结构实验之栈一:进制转换
- 数据结构实验之栈一:进制转换 SDUT 2131
- 数据结构实验之栈一:进制转换
- 数据结构实验之栈一:进制转换
- 数据结构实验之栈一:进制转换
- 数据结构实验之栈一:进制转换
- 数据结构实验之栈一:进制转换
- 数据结构实验之栈一:进制转换
- 数据结构实验之栈一:进制转换
- 数论
- 公众号基本信息介绍
- dp or 贪心 --- hdu : Road Trip
- Java--查看某一段代码或方法运行时间的方法
- 算法课第二周作业 | Majority Element
- 数据结构实验之栈一:进制转换(难道我学了个假栈?)
- Android Error Gradle sync failed 设备未就绪问题
- 暴力枚举 + 24点 --- hnu : Cracking the Safe
- 扫描线 + 线段树 : 求矩形面积的并 ---- hnu : 12884 Area Coverage
- 枚举 + 进制转换 --- hdu 4937 Lucky Number
- Topcoder SRM 627 div1 HappyLettersDiv1 : 字符串
- Problem--96A--Codeforces--Football
- dp --- hdu 4939 : Stupid Tower Defense
- STL : map函数的运用 --- hdu 4941 : Magical Forest