UDP广播协议叫吃饭


私信TA

用户名:Mustenaka

访问量:136387

签 名:

个人博客www.mustenaka.cn

等  级
排  名 12
经  验 23897
参赛次数 8
文章发表 197
年  龄 3
在职情况 学生
学  校 Sky_box
专  业 NE

  自我简介:

欢迎光临我的博客www.mustenaka.cn,Python,C#,U3D,C/C++开发合作可以找我

解题思路:
1.先直接输入n,如果n=0了,直接输出0-->0,如果n>0,进行进制转换运算,如果n<0,先输出一个负号(-)然后n取反,再进行进制转换运算。

2.期间利用了vector,不过感觉在这里用起来反而更加麻烦。

for(vector<int>::reverse_iterator it=ss.rbegin(); it!=ss.rend(); it++) {
cout<<*it;
}

这一句话主要是逆序迭代器,然后利用迭代器来进行输出,指针就是间接指向最末端的值,再依次后移而已(后移是往前面取值,因为reverse_iterator,逆序迭代器了,当然可以不逆序迭代器直接用it--而不是it++的方式进行前移)

3.ss.push_back(n%2);是输入,也可以直接ss[i]=n%2的方式进行输入


参考代码:

#include<bits/stdc++.h>
using namespace std;
int main() {
	int n;
	while(cin>>n) {
		cout<<n<<"-->";
		vector<int> ss;
		if(n==0)
			cout<<'0'<<endl;
		else if(n>0) {
bug:
			while(n>0) {
				ss.push_back(n%2);
				n=n/2;
			}
			for(vector<int>::reverse_iterator it=ss.rbegin(); it!=ss.rend(); it++) {
				cout<<*it;
			}
			cout<<endl;
		} else {
			n=-n;
			cout<<'-';
			goto bug;
		}
	}
	return 0;
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区