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

建筑安全网seo网站排名优化公司哪家好

建筑安全网,seo网站排名优化公司哪家好,网页制作与网站开发,上海公司网站开发题目链接: 10进制 VS 2进制http://www.nowcoder.com/share/jump/437195121691738172415 描述 对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们称B为A的二进制逆序数。 例如对于十进制…

题目链接:

10进制 VS 2进制icon-default.png?t=N6B9http://www.nowcoder.com/share/jump/437195121691738172415

描述

对于一个十进制数A,将A转换为二进制数,然后按位逆序排列,再转换为十进制数B,我们称B为A的二进制逆序数。 例如对于十进制数173,它的二进制形式为10101101,逆序排列得到10110101,其十进制数为181,181即为173的二进制逆序数。

输入描述:

一个1000位(即10^999)以内的十进制数。


输出描述:

输入的十进制数的二进制逆序数。

示例1


输入:

173

输出:

181

思路:

  1. 输入一个十进制数 s
  2. 使用大整数除法函数 divides 不断除以 2,得到二进制数的各个位,存放在向量 binary 中,顺序是按位逆序排列的。
  3. 初始化一个字符串 res 为 "0",用于存放最终的结果。
  4. 遍历 binary 中的每一位,将 res 乘以 2(相当于左移一位),然后加上当前位的值,得到二进制逆序数的十进制表示。
  5. 输出最终的二进制逆序数。

注意:代码中使用了字符串来表示大整数,通过模拟除法、乘法和加法操作,实现了对二进制逆序数的计算和转换。

源代码:

#include<iostream>
#include<string>
#include<vector>
using namespace std;// 例题6.3 KY26 10进制 VS 2进制 // 字符串表示的大整数除法
string divide(string str, int x) {int reminder = 0;  // 余数for (int i = 0; i < str.size(); i++) {int current = reminder * 10 + str[i] - '0';  // 当前位的数值str[i] = current / x + '0';  // 更新当前位的值为商的字符表示reminder = current % x;  // 更新余数}int pos = 0;while (str[pos] == '0') {pos++;  // 移除前导零}return str.substr(pos);  // 返回除法结果,移除前导零
}string multiple(string str, int x) {int carry = 0;  // 进位for (int i = str.size() - 1; i >= 0; i--) {int current = x * (str[i] - '0') + carry;  // 当前位的计算结果str[i] = current % 10 + '0';  // 更新当前位的值为计算结果的个位carry = current / 10;  // 更新进位}if (carry != 0) {str = "1" + str;  // 处理最终的进位}return str;
}string Add(string str, int x) {int carry = x;  // 初始进位为 xfor (int i = str.size() - 1; i >= 0; i--) {int current = (str[i] - '0') + carry;  // 当前位的计算结果str[i] = current % 10 + '0';  // 更新当前位的值为计算结果的个位carry = current / 10;  // 更新进位}if (carry != 0) {str = "1" + str;  // 处理最终的进位}return str;
}int main() {string s;cin >> s;  // 输入十进制数vector<int> binary;  // 用于存放二进制逆序的每一位while (s.size() != 0) {int last = s[s.size() - 1] - '0';  // 取最后一位binary.push_back(last % 2);  // 将最后一位的余数(二进制的最低位)存入 vectors = divide(s, 2);  // 将十进制数除以 2,得到下一轮迭代的数值}// 将得到的 binary 中的按位逆序排列的二进制数转换为十进制数string res = "0";  // 初始化结果为 0for (int i = 0; i < binary.size(); i++) {res = multiple(res, 2);  // 将结果乘以 2,相当于左移一位res = Add(res, binary[i]);  // 加上当前位的值}cout << res << endl;  // 输出最终的二进制逆序数return 0;
}

提交结果:

 

http://www.15wanjia.com/news/45776.html

相关文章:

  • 网站制作怎么学去哪学企业网络推广计划
  • 复制网页源代码做网站有什么功能
  • 如何用域名访问网站湖南网络推广公司大全
  • 品辰设计的网站谁做的免费网站seo优化
  • 网站制作公司优势网站制作费用一览表
  • 长沙公司做网站凡科建站代理登录
  • 做网站实训心得企业网络推广软件
  • 找客户在公司做网站如何增加网站权重
  • 武汉疾控最新提醒搜索引擎优化有哪些要点
  • wordpress网赚主题网站标题seo外包优化
  • wordpress转typecho台州seo排名优化
  • 网上销售 网站建设代运营是什么意思
  • wordpress建2个网站电脑网络优化软件
  • 众筹网站建设中国域名网官网
  • h5手机端网站开发seo网站排名优化培训教程
  • 武汉市园林绿化建设管理站网站近期发生的新闻
  • 陕西有没有做网站普查公司百度推广个人怎么开户
  • 福州网站建设推广公司舆情监测系统排名
  • 中企做网站软文网站平台
  • dede网站漏洞爱站网使用体验
  • 侠客推 网站建设厦门谷歌推广
  • 做门户网站的框架淘宝权重查询入口
  • 打电话给客户怎样介绍自己是做网站的?开场白?推广普通话手抄报一等奖
  • 网站的电子画册怎么做发布任务注册app推广的平台
  • 查公司信息的网站公众号推广合作平台
  • 买个网站域名多少钱企业营销策划公司
  • 个人网站做的类型网络营销网站推广方法
  • 网站开发工资待遇企业网站制作模板
  • wordpress 酒店朝阳区seo
  • 岳阳做网站公司谷歌浏览器下载视频