编程练习2

来源:互联网 发布:js获取url参数 编辑:程序博客网 时间:2024/06/05 07:47

今天又编了一个小程序,将十进制数转换成2-9进制的任意数。

吸取了昨天的经验,在编程之前先想清楚了实现转换的方法及步骤,最后考虑要用的的数据结构。

想法是这样的:输入十进制数,输入要转换成n进制,用输入数除以n,保存商和余数。如果商不为零,那么就继续循环;如果已经是零,说明结束。每一步把余数存在一个vector<int>中,最后倒序输出。

程序如下:

#include<iostream>
#include<vector>
using std::vector;
using std::cin;
using std::cout;
using std::endl;


int main()
{ cout<<"input a number in decimal:"<<endl;
int in,t;
cin>>in;
cout<<"change to ? system?"<<endl;
cin>>t;

int qa(in);
vector<int> rm;
rm.push_back(1);
cout<<in<<"  "<<t<<endl;
// cout<<1/2<<"  "<<1%2<<endl;
while(qa>0)
{//cout<<"in the while"<<endl;

rm.push_back(qa%t);
qa=qa/t; // cout<<"qa="<<qa<<"\t";
}


//cout<<"over"<<endl;
cout<<"the result is:";
for(vector<int>::iterator iter=rm.end()-1;iter>rm.begin();iter--)
cout<<*iter;
cout<<endl;
return 0;
}


之后又想要编一个检查括号匹配的问题,可是想了半天,想了一个好复杂的算法,最后还是没整出来。。。

感觉学习方法又出现了偏差,不能一直自己闷头编程,要多看看别人的程序,才能吸取精华。自己编是一方面,但是还要综合各种方法并行啊。好吧,去看看别人怎么编的。。。

原创粉丝点击