【洛谷 P2084】进制转换 题解(模拟+字符串)

这篇具有很好参考价值的文章主要介绍了【洛谷 P2084】进制转换 题解(模拟+字符串)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

进制转换

题目背景

题目描述

今天小明学会了进制转换,比如(10101)2 ,那么它的十进制表示的式子就是 :

1*24+0*23+1*22+0*21+1*2^0,

那么请你编程实现,将一个M进制的数N转换成十进制表示的式子。

注意:当系数为0时,该单项式要省略。

输入格式

两个数,M和N,中间用空格隔开。

输出格式

共一行,一个十进制表示的式子。

样例 #1

样例输入 #1

2 10101

样例输出 #1

1*2^4+1*2^2+1*2^0

提示

对于100%的数据,1<M<10,N的位数不超过1000。


思路

首先,从输入中读取一个整数m和一个字符串s。

代码中的变量i被初始化为字符串s的长度减1,这是因为在多项式中,最高位的指数是长度减1。接着,它设置一个标志变量flg,用于判断是否是第一个非零的字符,以决定是否需要输出一个加号。

然后,程序开始遍历字符串s中的每个字符。对于每个字符,如果它不是’0’,那么就输出这个字符和它的指数。这个指数是字符在字符串中的位置,从右到左,从0开始。如果这不是第一个非零的字符,那么在输出字符和它的指数之前,还会输出一个加号。

输出的格式是printf("%c*%d^%d", *it, m, i);,其中%c是字符,*是乘号,%d是整数,^是指数符号。在每次遍历后,i都会减1,因为我们是从字符串的末尾向前遍历。文章来源地址https://www.toymoban.com/news/detail-808461.html


AC代码

#include <iostream>
#define AUTHOR "HEX9CF"
using namespace std;

int main() {
	int m;
	string s;
	cin >> m >> s;
	int i = s.size() - 1;
	bool flg = 0;
	for (auto it = s.begin(); it != s.end(); it++) {
		if (*it != '0') {
			if (!flg) {
				flg = 1;
			} else {
				putchar('+');
			}
			printf("%c*%d^%d", *it, m, i);
		}
		i--;
	}
	return 0;
}

到了这里,关于【洛谷 P2084】进制转换 题解(模拟+字符串)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Golang】二进制字符串转换为数字

     在本文中,我们将探讨如何使用 Go 语言将十六进制字符串转换为二进制字符串,将不定长整型补码字符串转换为数字,以及如何将 IEEE754 标准的单精度(32位)和双精度(64位)浮点数字符串转换为数字。最后,我们将讨论如何将布尔类型的二进制字符串转换为布尔值。 这

    2024年01月16日
    浏览(58)
  • MFC 编辑框输入16进制字符串转换为16进制数或者10进制数据计算

    1. 编辑框添加变量,并选择变量类型为CString。     CString m_strReg;        DDX_Text(pDX, IDC_EDIT_REG, m_strReg); 2. 使用“strtoul”或“_tcstoul”函数将Cstring 类型转换为16进制/10进制数进行计算。     CString tmp;     UpdateData(TRUE);     UpdateData(FALSE);          OutputDebugString(m_strReg);  

    2024年02月16日
    浏览(59)
  • 字符串string转换长整型int(八进制、十进制、十六进制)

    strtoul() 是C语言标准库中用于将字符串转换成无符号长整数的函数。它的完整原型如下: 其中, nptr 代表要被转换成无符号长整数的字符串; endptr 是一个指向字符指针的指针,该指针指向已经转换了的最后一个字符的下一个位置; base 指定要采用的进制,范围是2 ~ 36。 该函

    2024年02月07日
    浏览(53)
  • java案例5-4 字符串转换为二进制

    本例要求编写一个程序,从键盘录入一个字符串,将字符串转换为二进制数。在转换时,将字符串中的每个字符单独转换为一个二进制数,将所有二进制数连接起来进行输出。 案例在实现时,要求使用Math类、String类以及Scanner等常见Java API的常用方法. 2.运行结果 学会分析“十

    2024年02月09日
    浏览(62)
  • python 如何将十六进制值转换为字符串?

    Python 中提供了几种将十六进制值转换为字符串的方法,下面将介绍其中的三种方法。 bytes.fromhex() 方法可以将十六进制字符串转换为字节串,然后再将字节串转换为字符串。例如: 其中, bytes.fromhex() 方法将十六进制字符串转换为字节串, byte_str.decode(\\\"utf-8\\\") 方法将字节串转

    2023年04月23日
    浏览(51)
  • JAVA 十六进制与字符串的转换浅谈

      笔者前几日在开服过程中需要将字符串转化成为16进制的字符串,在网上找到了一些方法尝试之后,均发现存在一个问题--字符串转为16进制后再转回来,英文正常,中文出现乱码 笔者前几日在开服过程中需要将字符串转化成为16进制的字符串,在网上找到了一些方法尝试之后,均发

    2024年02月07日
    浏览(44)
  • python中str、bytes、十六进制字符串的相互转换

    python中str、bytes、十六进制字符串的介绍 str是python的内置函数,str字符串在python中使用 \\\'\\\' 或者 \\\"\\\" 括起来的字符串,比如: bytes也是python的内置函数,bytes字符串通常以b开头,比如: 十六进制字符串是指字符串中每个字符表示一个十六进制数,两个字符组成一个字节,比如

    2024年02月21日
    浏览(54)
  • 考研算法第46天: 字符串转换整数 【字符串,模拟】

    题目前置知识 c++中的string判空 c++中最大最小宏 字符串使用+发运算将字符加到字符串末尾  题目概况 AC代码

    2024年02月12日
    浏览(57)
  • 湘大 XTU OJ 1290 Alice and Bob 题解(非常详细):字符串 分类讨论 简单模拟

    1290 Alice and Bob Alice和Bob玩剪刀-石头-布的游戏 ,请你写个程序判断一下比赛的结果。 第一行是一个整数K,表示样例的个数。 以后每行两个单词, rock表示石头,paper表示布,scissors表示剪刀 。 前面一个单词是Alice出的拳,后面一个单词是Bob出的拳。 平局输出\\\"Draw\\\",否则输出

    2024年02月13日
    浏览(37)
  • 【LeetCode】字符串转换整数 (atoi) [M](模拟)

    8. 字符串转换整数 (atoi) - 力扣(LeetCode) 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负

    2024年02月07日
    浏览(68)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包