2022/11/22Debug记录,栈

# 进制转换(洛谷p2084)

## 题目背景

## 题目描述

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

1\*2^4+0\*2^3+1\*2^2+0\*2^1+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。

错误代码

#include"iostream"
using namespace std;

int main() {
    int m,top=0,i=0, q[100000];
    string str;
    cin >> m;
    cin >> str;
    for (i = 0; str[i]!=NULL; i++) {
        q[++top] == str[i];
    }
    for (int j = 0; top > 0;j++) {
        if (q[top] != 0)
            cout <<"+" << q[top--] << "*"<<m<<"^" << j;
    }
}

错误原因:1.抬头会多一个加号。 2.输出的不是正常数字,是内存地址--->对字符串不熟悉

修正

#include"iostream"
using namespace std;

int main() {
    int m;
    string n;
    cin >> m >> n;
    bool flag = true;
    for (int i = 0; i < n.size(); i++) {
        if (n[i] != '0') {
            if (flag != true)
                cout << "+";
            cout << n[i] << "*" << m << "^" << n.size() - i - 1;
            flag = false;
        }    
    }
    return 0;
}

1.定义bool flag,来区分第一个和其他的,从而解决多出的加号

2.s.size()来获取字符串的长度。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: <glog/logging.h>是Google的开源C ++日志记录库,用于在C ++程序中实现灵活且高效的日志记录功能。它提供了一个易于使用的接口,可以将各种日志消息记录到控制台、文件或其他输出目标中。 <glog/logging.h>库主要由以下几个组件组成: 1. Logger(日志记录器):提供了不同级别的日志记录功能,例如INFO、WARNING、ERROR和FATAL。可以通过使用Logger对象的接口来记录不同级别的日志消息。 2. LogSink(日志汇):定义了将日志消息写入目标的接口。可以通过创建和注册不同类型的LogSink对象来将日志消息输出到不同的目标,例如控制台、文件或远程服务器。 3. LogMessage(日志消息):包含了要记录的日志消息的详细信息,例如发生日志记录的文件名、行号等。可以通过LogMessage提供的接口来记录日志消息。 4. Flag(标志):用于启用或禁用特定的日志记录功能。可以通过设置不同的Flag来控制日志记录的级别、输出目标等。 通过在C ++代码中包含<glog/logging.h>头文件,并使用其中的接口,开发人员可以方便地实现日志记录功能。此外,该库还提供了一些额外的功能,例如支持日志消息的格式化、日志消息的过滤和日志的分级统计等。 总而言之,<glog/logging.h>是一个强大且易于使用的C ++日志记录库,提供了丰富的功能和灵活的配置选项,可以帮助开发人员更好地追踪和调试程序中的问题。 ### 回答2: <glog/logging.h> 是一个开源的 C++ 日志库。它提供了一套灵活、功能丰富且易于使用的日志记录工具,用于帮助开发人员在程序中方便地记录和追踪各种信息。 使用<glog/logging.h>,开发人员可以通过简单的API调用来记录各种消息,包括调试信息、警告、错误和临时性信息。该库支持不同级别的日志,包括 INFO、WARNING、ERROR、FATAL,开发人员可以根据不同的需求来选择适当的日志级别。 此外,<glog/logging.h> 还提供了一些其他功能,如日志文件的自动分割、多线程支持、日志信息的颜色标记、日志信息到标准输出的同时写入到磁盘等。这些功能使得开发人员可以更好地分析和排查程序中的问题。 另外,<glog/logging.h> 是跨平台的,可以在多个操作系统上运行,如Linux、Windows和MacOS。它被广泛应用于各种规模的软件项目中,包括大型分布式系统、Web 服务器、数据库等。 总而言之,<glog/logging.h> 是一个功能强大且易于使用的C++日志记录库,可以帮助开发人员在程序中方便地记录各种信息,并提供了许多有用的功能来方便开发人员分析和排查问题。无论是开发大型软件还是小型项目,都可以考虑使用这个库来提高开发效率和日志记录的质量。 ### 回答3: <glog/logging.h> 是一个开源的 C++ 日志库,由 Google 开发并维护。它提供了一种简单且高效的方式来在代码中记录日志信息。 使用 <glog/logging.h>,开发者可以通过调用相应的函数将各种级别的日志信息输出到控制台或文件中。这些日志级别包括 DEBUG、INFO、WARNING、ERROR 和 FATAL,可以根据需要选择不同的级别来记录日志,以方便在开发和调试过程中进行有效的日志跟踪和错误定位。 <glog/logging.h> 的优势在于其高性能和灵活的配置选项。它通过多线程和缓冲技术,能够在高并发的情况下保持较低的性能开销。此外,开发者还可以通过配置文件或命令行参数来调整日志记录的行为,包括输出格式、日志文件路径、日志级别等。这使得 <glog/logging.h> 能够灵活地适应各种不同的应用场景和需求。 另外,<glog/logging.h> 还提供了一些其他功能,如追踪信息的记录、日志的自动滚动和分割、对日志进行查找和过滤等。这些功能进一步增强了日志的可读性和可管理性,有助于快速定位和排查问题。 总之,<glog/logging.h> 是一个功能强大、易用且高性能的 C++ 日志库。它通过简化日志记录的过程和提供丰富的配置选项,极大地方便了开发人员进行日志管理和问题排查,是很多 C++ 项目中常用的工具之一。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值