题解 | 2的幂次方

#include <bits/stdc++.h>
using namespace std;

// 将整数转换为二进制表示的字符串
string toBinary(int n) {
    string result = "";
    while (n > 0) {
        result += (n % 2 == 0 ? '0' : '1');
        n /= 2;
    }
    reverse(result.begin(), result.end());
    return result;
}

// 递归将整数转换为幂表示
string transN(int n) {
    if (n == 0) return "0"; // 特殊处理 n = 0
    if (n == 1) return "2(0)"; // 特殊处理 n = 1

    string binary = toBinary(n); // 获取二进制表示
    string result = "";

    for (int i = 0; i < binary.size(); i++) {
        if (binary[binary.size() - 1 - i] == '1') { // 检查对应二进制位是否为 1
            if (i == 0) {
                result = "2(0)+" + result;
            } else if (i == 1) {
                result = "2+" + result;
            } else {
                result = "2(" + transN(i) + ")+" + result;
            }
        }
    }
    
    result.pop_back(); // 删除末尾的 '+'
    return result;
}

int main() {
    int n;
    while (cin >> n) {
        cout << transN(n) << endl;
    }
    return 0;
}

全部评论
``` cpp string toBinary(int n){ string a=""; while(n!=0){ a+=n%2+'0'; n/=2; } reverse(a.begin(),a.end()); return a; } string transN(int n){ string s=toBinary(n); string t=""; for(int i=0;i
点赞 回复 分享
发布于 01-05 14:35 河南

相关推荐

01-05 16:55
点赞 评论 收藏
分享
2024-12-23 13:57
广西大学 Java
秋招真的是一场漫长的马拉松,现在也终于轮到我松口气啦,拿到了平安产险科技中心的offer,记录一下拿到offer的全过程:我的timeline:11.12&nbsp;笔试12.2&nbsp;初面12.6&nbsp;复试12.20&nbsp;offer面试情况:平安产险问的问题真的太多了,从项目问到Java框架,从Java框架问到Java基础,从基础问到操作系统,妈耶,我记得初面面到后面都给我面累了,但是面试官一直在很认真的问和引导我,我就也没放弃,给你们大致感受一下。1.项目技术框架2.逻辑业务设计3.项目技术难点4.修改bug5.Springboot特点6.实现ioc的方式7.Bean的注入方法8.过滤器和aop的区别9.Springboot的自动配置如何加载10.Mybatis实现方式11.Mapper如何实例化12.Nacos服务注册,基于什么协议13.Springsecurity讲一下14.数据隔离有什么实现方式15.讲一下minio如何存储的16.项目redis更新频率17.Java8的新特性18.讲一下lamda表达式19.Java的多态20.Java学习路线21.Java的集合22.List的底层数据结构23.List实现动态扩容,什么时候进行扩容,如何扩容24.List是否指定大小有什么区别和好处25.多线程如何处理,如何加锁,加锁的对象26.如果类的其他方法调用了上锁的对象会怎样27.Linkedlist底层数据结构,如何增删,如何判断是否环状联表28.Hashmap的键值是否能为空,数据结构,如何转化29.为什么红黑树的效率高30.树的常见结构(除了二叉树还有什么)31.讲一下红黑树,有什么应用场景32.讲一下进程和线程33.如果一个线程高cpu,如何定位34.如何查看具体的线程35.多线程操作,原子变量,volatile具体实现36.Io操作37.字节流和字符流区别38.字符流遇到乱码怎么处理39.常见的字符集40.网络编程不管怎么样,最终算是过了,也拿到了offer,求职体验也还不错。offer情况:base深圳福田市中心,位置非常核心,周边都是商场,很便利。产险业务比较核心也比较稳定,据说工作强度也不算大,公司比较人性化,我们后面报道的路费和报道的酒店都是报销的,加入还是比较安心的。其实offer唯一美中不足的是薪资不高,不过好在平安产险背景比较强,行业背书还可以,以后跳槽还比较容易,甚至更好升职级,就先接了。大厂真的是我们秋招的托举,总是让我们很安心,本来一直到11月还没有offer的我很焦虑,直到平安产险连续发初试复试和最终发offer,让我感觉很温暖!#平安产险科技中心求职汇总#
开挂了的鲸鱼很深情:秋招真的就是过关斩将,结果是好的就好啦
查看40道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务