c语言2进制转3进制

2023-11-15

保存答案的。。。 要求二进制满足最多64位 网上的答案都不对。。。。听同学讲用了  unsigned long long 和 运算左移 

方法一:


#include<stdio.h>

#include<iostream>
#include<algorithm>
using namespace std;


int main()
{
int n;
int length;
int ans[70];
char c[70];
unsigned long long res;
scanf("%d",&n);
while(n--)
{
scanf("%s",c);
length = strlen(c);
for(int i = length - 1; i >=0 ;i--)
{
if(c[i] == '1')
res += (unsigned long long)((unsigned long long)1 <<(unsigned long long)(length - i- 1));//a<<n表示a左移n位(二进制)等价于a乘以2的n次方
}
if(res == 0)
{
printf("0\n");
}
int j = 0;
while(res != 0)
{
ans[j] = res % 3;
res /= 3;
j++;
}
for(int i = j - 1; i >= 0; i--)
{
printf("%d",ans[i]);
}
printf("\n");
}
return 0;

}



方法二:

#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
using namespace std;


int n,ans[100],num[100];
int ten[100];
char s[100];


int get2to10(int n){
memset(num,0,sizeof(num));
int cur=0,idx=0;
num[99]=1;
for(int i=0;i<n;i++){
for(int j=99;j>=0;j--){
int temp=(num[j]<<1)+cur;
num[j]=temp%10;
cur=temp/10;
}
}
while(!num[idx])idx++;
for(int i=idx,j=0;i<=99;i++,j++)num[j]=num[i];
for(int i=99-idx+1;i<=99;i++)num[i]=0;
return 99-idx+1;
}


int add(int l){
int idx=0;
for(int i=0,j=l-1;i<l/2;i++,j--)swap(num[i],num[j]);
for(int i=0,carry=0;i<99;i++){
ten[i]=ten[i]+num[i]+carry;
carry=ten[i]/10;
ten[i]%=10;
}
for(int i=99;i>=0;i--)if(ten[i]){idx=i;break;}
return idx+1;
}


int div(int& l){
int ret=0,cnt=0,idx=0;
for(int i=0;i<l;i++){
ret=ret*10+ten[i];
ten[cnt++]=ret/3;
ret%=3;
}
for(int i=0;i<l;i++)if(ten[i]){idx=i;break;}
for(int i=idx,j=0;i<l;i++,j++)ten[j]=ten[i];
l-=idx;
return ret;
}


int main ()
{
cin>>n;
while(n--){
memset(ten,0,sizeof(ten));
memset(ans,0,sizeof(ten));
cin>>s;
int len=strlen(s);
int l1=0,l2=0,cnt=0;
for(int i=len-1;i>=0;i--){
if(s[i]=='0')continue;
l1=get2to10(len-i-1);
l2=add(l1);
}
for(int i=0,j=l2-1;i<l2/2;i++,j--)swap(ten[i],ten[j]);
if(ten[0]==0){
cout<<0<<endl;
continue;
}
while(ten[0]){
ans[cnt++]=div(l2);
}
for(int i=cnt-1;i>=0;i--)cout<<ans[i];
cout<<endl;
}
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c语言2进制转3进制 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • C# 列表通用扩展方法与非通用扩展方法

    这是一个简单的问题 我希望 集合类中有通用和非通用方法 例如List
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C# 使用“?” if else 语句设置值这叫什么

    嘿 我刚刚看到以下声明 return name null name NA 我只是想知道这在 NET 中叫什么 是吗 代表即然后执行此操作 这是一个俗称的 条件运算符 三元运算符 http en wikipedia org wiki Tern
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 软件测试之删除功能点用例梳理

    共计22点 一 UI界面测试 删除按钮 UI显示正常 布局合理 删除后 结果展示 布局合理 删除后 页面的分页 布局合理 二 用户体验测试 不选择任何信息 直接点击删除按钮 是否有提示 删除某条或多条信息时 应该有确认提示 三 功能测试 删
  • docker mysql5.7.16 中文乱码

    有部分同学会遇到 在centos上docker mysql没乱码 但是在fedora系统上的docker mysql会有乱码问题 这兴许是docker mysql的问题 这里的bug我们不去追究 这里主要讲解决方案 首先系统要安装有dock
  • 工业质检如何以“智”取胜?15分钟上手工业零部件检测全流程方案

    工信部联合国家发展改革委 教育部 科技部等部门发布了十四五智能制造发展规划 规划中提出 到2025年70 规模以上的制造业企业基本要实现数字化网络化 建成500个以上引领行业发展的智能制造示范工厂 制造业离不开质检质检需要AI智能化赋能 制
  • 问题:your cpu does not support kvm extensions

    问题 我的BIOS开启了CPU虚拟化 但是虚拟机仍然显示your cpu does not support kvm extensions 解决 1 关闭虚拟机 2 虚拟机上单击右键 设置 3 选择下图选项 4 重启虚拟机 问题解决
  • JAVA 中的 -> 是什么意思?

    在 JAVA核心编程 中 有一段这样的代码 import javax swing import java awt import java io File public class ImageViewer public static void
  • 我的创作纪念日2023.8.5

    机缘 在CSDN的创作开始于去年 创作的初衷是希望对自己的学习经历进行记录 同时也把自己的经验和收获传递给更多需要的小伙伴 创作博客的过程是一个将输入的知识进行再生产的过程 在此期间 知识获得了沉淀和提纯 思路和想法也愈发通畅 收获 1 在
  • sql根据入职日期查询工龄

    员工表 查询入职满5年的员工 员工表 查询入职满5年的员工在这里插入图片描述 部门表 在这里插入图片描述 SELECT FROM COM WHERE entry lt DATE SUB SYSDATE INTERVAL 5 YEAR 原文链
  • 苹果开发者账号Apple ID如何进行资料修改?

    我们在申请了开发者账号后 有时候需要对账号进行资料修改 只要你有了Apple ID 也就是邮箱 和苹果的密保 密码 那这个Apple ID就唯一属于你的了 下面会截图说明如何进行修改 首先登陆Apple ID管理网站 https apple
  • Leetcode466.统计重复个数——掐头去尾寻找循环点

    文章目录 引入 本题题解 引入 每日一题出现了这么一道题 466 统计重复个数 题目在此就不做展示了 直接说思路 刚拿到这道题的时候 首先会找 多少个s1才能够拼成一个s2 比如 abba 和 ab 那么一个 abba 里面就包含了 abb
  • 蓝桥杯真题:乘积尾零(2018 年省赛)

    如下的 1010 行数据 每行有 1010 个整数 请你求出它们的乘积的末尾有多少个零 5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6113 5659 5245 7432
  • c结构体中char[0]的作用-实现数组扩展

    struct Data int len char data 0 原来的data中没有元素 不分配内存 结构体Data的大小为4 假如现在分配15字节的内存 并且将指向这块内存的指针强制转换为 Data Data pData Data mal
  • 用于多模态图像配准的弱监督卷积神经网络

    Weakly Supervised Convolutional Neural Networks for Multimodal Image Registration 摘要 在多模态图像配准的监督学习中 最基本的挑战之一是体素级空间对应的基值的
  • lua学习笔记之详解lua堆栈

    原文连接 http blog csdn net musicvs article details 8440707 1 Lua的堆栈和全局表 我们来简单解释一下Lua的堆栈和全局表 堆栈大家应该会比较熟悉 它主要是用来让C 和Lua通信的 是的
  • STA series --- 8.Timing Verification (PARTI)

    本篇内容 基于阅读J Bhasker Rakesh Chadha著作 Static Timing Analysis for Nanometer Designs 后进行的总结以及自己的观点和感想 如有不正确的地方 还请指点 读者有微电子基础将
  • Web安全之SQL注入攻击

    什么是SQL注入式攻击 所谓SQL注入式攻击 就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串 欺骗服务器执行恶意的SQL命令 在某些表单中 用户输入的内容直接用来构造 或者影响 动态SQL命令 或作为存储过程的输入参数
  • Synchronized的原理及自旋锁,偏向锁,轻量级锁,重量级锁的区别

    在多线程并发编程中Synchronized一直是元老级角色 很多人都会称呼它为重量级锁 但是随着Java SE1 6对Synchronized进行了各种优化之后 有些情况下它并不那么重了 Java SE1 6中为了减少获得锁和释放锁带来的性
  • WebGoatV8.1(challenges)详细过关教程

    一 Admin lost password 设置代理继续抓包 刷新题目本页面 抓取url路径为 WebGoat challenge logo的包 重放在回应包里面搜索admin找到账号和密码 登录拿到flag 二 Without passw
  • 华为od统一考试B卷【师徒关系】

    题目描述 给定数组 2 1 3 2 每组表示师徒关系 第一个元素是第二个元素的老师 数字代表排名 现在找出比自己强的徒弟 输入 2 1 3 2 输出 0 1 2 第一行数据 2 1 表示排名第 2 的员工是排名第 1 员工的导师 后面的数据
  • Flask 数据库-单表操作

    Flask SQLAlchemy Flask SQLAlchemy是在Flask中操作关系型数据库的拓展 是以面向模型对象的形式操作数据库 通过迁移完成建表 安装 pip install flask sqlalchemy 基本配置 第一种
  • c语言2进制转3进制

    保存答案的 要求二进制满足最多64位 网上的答案都不对 听同学讲用了 unsigned long long 和 运算左移 方法一 include