【蓝桥杯刷题】坑爹的负进制转换

news/2025/3/14 16:55:38/

【蓝桥杯刷题】——坑爹的负进制转换😎😎😎

目录

💡前言🌞:  

 💛坑爹的负进制转换题目💛 

题目描述

输入描述

输出描述

💪 解题思路的分享💪  

 😊题目源码的分享😊

👉 本菜鸡&总结 👈
327797c770ae4cef834a1bc8a23c561d.gif

😎博客昵称:陈大大陈

😊座右铭:所谓觉悟,就是在漆黑的荒野上开辟出一条理当前进的光明大道。

😋博主简介:一名热爱C/C++和算法等技术,喜欢运动,爱胡思乱想却胸怀大志的小博主!

😚博主&唠嗑:早中晚安!😄各位CSDN的朋友!😄我是博客新人陈大大陈,希望我的文章能为你带来帮助!欢迎大家在评论区畅所欲言!也希望大家多多为我提出您宝贵的建议!😘如果觉得我写的不错的话还请点个赞和关注哦~😘😘😘

10d810c44eb60ab102be7e5b2e50ff19.gif

💡前言🌞:  

大伙们好!😄又到了小陈蓝桥杯每日一题的时间了~ 😋😋😋今天也带来了十分有趣的题目!🥰🥰🥰用C语言实现——坑爹的负进制转换,这个题目对我来说很有挑战性,把我折磨的很难受,不过我还是整出来了,我现在迫不及待地要和大家分享~!😄🤗🤗

 💛坑爹的负进制转换题目💛 

💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡💡

题目描述

以前我们做的进制转换大家都忽略了一点,就是进制一定是正整数;今天这道进制转换就坑爹的选择了,额,负整数来做进制。

输入描述

输入由若干行组成,每行有两个整数n(-32765<=n<=32767)和R(-16<=R<=-2)。输入的最后一行只有一个‘#’号,表示输入结束。

输出描述

对于每个输入行,输出n的R进制形式。出现的字母请用大写字母表示!

样例输入

30000 -2
-20000 -2
28800 -16
-25000 -16
#

样例输出

11011010101110000
1111011000100000
19180
7FB8

💪 解题思路的分享💪  

  • 我们采用递归的写法来写这道题目。
  • 首先我们要知道,在C语言中,商和余数都符合 被除数=商x除数+余数 这一数学规律。C/C++ 是向零取整(负数向上、正数向下取整)的。也就是说,余数可能是负数。
  • 我们要打印出对应的负二进制,就不能有负数,所以代码中如果余数为负数,要将其变为正数。
  • 说道递归,那就必须要有出口,我们将a==0作为递归出口,当a不停除以对应进制到零,此时递归停止。
  • 当余数小于零时,我们该如何将其变为正数呢?例如-5/-2=2余-1,这个-1没有办法处理。
  • 我们不能改变结果的值,那就需要一个看起来很简单但是想不到的转换公式:
  • (商+1)*除数+(余数-除数)=商*除数+除数+余数-除数=商*除数+余数=被除数
  • 所以我们要保证商不变的话只要  被除数=被除数+除数,化简一下可以得到商=被除数/除数--->(被除数+除数)/除数=商+1  。
  • 为了实现多组输入,用scanf返回值来判断输入是否正确。

 😊题目源码的分享😊

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void JinZhi(int a, int b)
{if (a == 0)return;//递归的出口int m = a % b;if (m < 0){m -= b; a += b;}if (m > 10){m = m - 10 + 'A';//转化成字符型,方便16进制输出成字符}else{m += '0';}JinZhi(a / b, b);printf("%c", m);//注意顺序,不要写到函数的前面,不然就反了
}
int main()
{int n[10], m[10],i=0;int a, b;while (scanf("%d%d", &a, &b) == 2)//用scanf返回值来判断输入是否正确{n[i] = a;m[i] = b;i++;}for (int j = 0; j < i; j++){JinZhi(n[j], m[j]);printf("\n");}return 0;
}

👉 本菜鸡&总结 👈

这是我们学校蓝桥杯选拔赛上面的题目,我觉得很有挑战性写了这篇博客,这种题目比较耐人寻味,哪位大佬有更好的做法,请在评论区不吝赐教哦~😀如果觉得我写的不错的话还请点个赞和关注哦~我会持续输出编程的知识的!🌞🌞🌞 

1a8d32135edbdcac9a664aac3d8c43e9.gif


http://www.ppmy.cn/news/31441.html

相关文章

【电子学会】2022年12月图形化三级 -- 猜数字游戏

猜数字游戏 假设有一个100以内的正整数&#xff0c;分别输入这个数除以3、5、7之后的余数&#xff0c;找出这个数字是多少&#xff1f; 1. 准备工作 &#xff08;1&#xff09;默认角色小猫和白色背景。 2. 功能实现 &#xff08;1&#xff09;分别询问三次&#xff1a;除…

SCI期刊写作必备(二):代码|手把手绘制目标检测领域YOLO论文常见的性能对比折线图,一键生成YOLOv7等主流论文同款图表,包含多种不同功能风格对比图表

绘制一个原创属于自己的YOLO模型性能对比图表 具体绘制操作参考:(附Python代码,直接一键生成,精度对比图表代码 ) 只需要改动为自己的mAP、Params、FPS、GFlops等数值即可,一键生成 多种图表风格📈,可以按需挑选 🚀绘制YOLOv7论文同款性能对比图-Python:包括mAP、…

【web前端开发】CSS最常用的11种选择器

文章目录1.CSS介绍2.CSS的语言规则3.CSS的引入方式4.选择器标签选择器类选择器id选择器通配符选择器复合选择器后代选择器子代选择器并集选择器交集选择器伪类选择器hover伪类选择器active伪类选择器结构伪类选择器结语1.CSS介绍 CSS (Cascading Style Sheets&#xff0c;层叠样…

【微信小程序】-- 自定义组件 -- 创建与引用 样式(三十二)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

css3横向无限公告消息滚动功能

css部分 .container { display: flex; /* 父容器需要有明确的高度 / // height: 150px; width: 2100rpx; margin: auto; overflow: hidden; position: absolute; top: 20%; left: 0; animation: scroll 8s linear infinite normal; } .container > .scroll-list { display:…

python的django框架从入门到熟练【保姆式教学】第二篇

在上一篇博客中&#xff0c;我们介绍了Django的基础知识&#xff0c;并创建了一个简单的Web应用程序。在本篇教程中&#xff0c;我们将深入探讨Django的模型层&#xff08;Model&#xff09;&#xff0c;它是Django应用程序的核心组件之一。 模型层 Django的模型层是一个对象…

Oracle 实现对全局错误语句的审计监控 ORA- alert

--将所有数据库ora-错误写入表create table error_tab (username varchar2(4000), d_current_nr_error varchar2(4000), ora_server_error_msg varchar2(4000), full_text varchar2(4000),errdate date);create or replace trigger error_triggerafter servererror on database…

04从零开始学Java之可能是最详细的Java环境配置教程

作者&#xff1a;孙玉昌&#xff0c;昵称【一一哥】&#xff0c;另外【壹壹哥】也是我哦CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者前言在上一篇文章中&#xff0c;壹哥给大家重点讲解了Java实现跨平台的原理&#xff0c;不知道你现在有没有弄清楚呢&#xff1f;如…