幂次方(c++题解)

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

题目描述

任何一个正整数都可以用 22 的幂次方表示。例如 137=2^7+2^3+2^0。

同时约定方次用括号来表示,即 a^b 可表示为 a(b)。

由此可知,137137 可表示为 2(7)+2(3)+2(0)

进一步:

7= 2^2+2+2^0 ( 2^121 用 2 表示),并且 3=2+2^0。

所以最后 137 可表示为 2(2(2)+2+2(0))+2(2+2(0))+2(0)。

又如 1315=2^{10} +2^8 +2^5 +2+1

所以 1315最后可表示为 2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)。

输入格式

一行一个正整数 n。

输出格式

符合约定的 n 的 0,2 表示(在表示中不能有空格)。

输入输出样例

输入 #1复制

1315

输出 #1复制

2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)

_____________________________________________________________________________

写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
_____________________________________________________________________________文章来源地址https://www.toymoban.com/news/detail-641412.html

#include<bits/stdc++.h>
using namespace std;
int n;
void dfs(int s){
	for(int i=log2(s)+1;i>=0;i--){
		if(s>=pow(2,i))	{
			if(i==2){
				cout<<"2(2)";
			}
			else if(i==1){
				cout<<"2";
			}
			 else if(i==0){
				cout<<"2(0)";
			}
			 else{
				 cout<<"2(";
				dfs(log2(s));
				cout<<")";
			}
			s-=pow(2,i);
			if(s!=0){
				cout<<"+";
			}
		}
	}
}

int main()
{
	cin>>n;
	dfs(n);
	return 0;
}

到了这里,关于幂次方(c++题解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • [C语言】多种方法求2的n次方

    不断地乘以2,循环i次 一个数它左移,左移一位的话就相当于是乘二,左移两位的话就相当于是乘四,左移三位的话就相当于是乘八,那就是相当于是。所以一位的话相当于是乘二的一次方,所以两位的话就是相当于乘二的二次方。 2^n=2*2^(n-1)=2*2*2^(n-2)……以此类推

    2024年02月08日
    浏览(53)
  • 【C语言题解】 | 965. 单值二叉树

    提示: 给定树的节点数范围是 [1, 100]。 每个节点的值都是整数,范围为 [0, 99] 。 这个题目我们通过分治思想来解题: 首先传入的是根节点 其次判断根节点是否有左子树和右子树,若存在则判断左右子树的值是否于根节点的值相同(不同则返回false,相同则继续) 若正确,

    2024年01月21日
    浏览(32)
  • PTA题解 --- A-B(C语言)

    今天是PTA题库解法讲解的第三天,今天我们要讲解A-B,题目如下: 要解决这个问题,可以通过以下步骤编写C语言程序: 读取字符串A和B。 创建一个标记数组,用于记录字符串B中所有字符的出现。 遍历字符串A,只有当当前字符在B中没有出现时才打印它。 输出处理后的字符

    2024年03月19日
    浏览(37)
  • C语言 | Leetcode C语言题解之第36题有效的数独

    题目: 题解:

    2024年04月22日
    浏览(37)
  • C语言 | Leetcode C语言题解之第21题合并两个有序链表

    题目: 题解:

    2024年04月12日
    浏览(38)
  • 【华为OD机试 2023最新 】最大利润(C语言题解 )

    题目描述 商人经营一家店铺,有number种商品, 由于仓库限制每件商品的最大持有数量是item[index] 每种商品的价格是item-price[item_index][day] 通过对商品的买进和卖出获取利润 请给出商人在days天内能获取的最大的利润 注:同一件商品可以反复买进和卖出 输入描述 第一行输入商

    2023年04月19日
    浏览(38)
  • 【C语言题解】 | 144. 二叉树的前序遍历

    提示: 树中节点数目在范围 [0, 100] 内 函数原型: 首先先观察一下这个函数原型, TreeNode* root 为形参,传入根节点, int* returnSize 为形参,在函数调用时用于返回改题目所求数组的长度,因为由于C语言的局限,只能返回一个参数,所以采用这种通过传入指针的形参,来改变

    2024年01月18日
    浏览(43)
  • 【独家】华为OD机试提供C语言题解 - 事件推送

    华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单 华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典 【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南) 华为od机试,独家整理 已参加机试人员的实战技巧

    2024年02月15日
    浏览(39)
  • 力扣第92题——反转链表 II(C语言题解)

    给你单链表的头指针  head  和两个整数  left  和  right  ,其中  left = right  。请你反转从位置  left  到位置  right  的链表节点,返回  反转后的链表  。 示例 1: 示例 2: 提示: 链表中节点数目为  n 1 = n = 500 -500 = Node.val = 500 1 = left = right = n 我们以下图中黄色区域的链

    2024年01月23日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包