任何一個數都可以用2的冪次方表示
思路:列舉,遞迴 ,
#include<iostream> #include<cstdio> using namespace std; void try1(int n,int r){ if(n==1) printf("2(%d)",r); else { try1(n/2,r+1); if(n%2==1){ printf("+2(%d)",r); } } } int main(){ int n; scanf("%d",&n); try1(n,0); return 0; }
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int n;
scanf("%d",&n);
int num=0;
while(n){
if(n%2==1) printf("%d ",num);
n=n/2;
num++;
}
return 0;
}
相關推薦
任何一個數都可以用2的冪次方表示
思路:列舉,遞迴 , #include<iostream> #include<cstdio> using namespace std; void try1(int n,int r){ if(n==1) printf("2(%d)",r); else {
面試:快速判斷一個數是否是2的冪次方,若是,並判斷出來是多少次方!
/********************************************************************** 將2的冪次方寫成二進位制形式後,很容易就會發現有一個特點: 二進位制中只有一個1,並且1後面跟了n個0; 因此問題可以轉化為判斷1後
如何判斷一個數是否為2的冪次方
最近在OJ上做題,遇到一道題,其中一個細節就是需要判斷一個數是否為2的冪次方。初看似乎很簡單,可我想來想去,竟然無甚好辦法。最後我用一個笨辦法解決了,那就是將2 4 8 16 32… …存到一個數組裡,遍歷一遍陣列就知道了。但是這個辦法著實不優美。 下面介紹一個好辦法
【C語言】推斷一個數是否為2的n次方
post data- popu scanf scan ng- 輸入 ont print //推斷一個數是否為2的n次方 #include <stdio.h> int is_two_n(int num) { if ((num&(num - 1))
判斷一個數是否為2的N次方
在閱讀goim原始碼的時候, 在ring.go中看到這句程式碼: // 2^N if num&(num-1) != 0 { // ... } 原來這是判斷2的N次方。 然後總結了下, 判斷一個數n是否為2的N次方的辦法(要求n>0): 第一種:笨辦法
關於如何判斷一個數是否是2的整數次方的問題
有這樣的一道題: 有一串奇怪數列如下:1 2 -3 4 -5 -6 -7 8 -9 ... 即從1-n,碰到2的次方倍則顯正,其他則是負數。(2的整次方包括:1,2,4,8,16,32,64,128,....) 現在給你一個n,求出,這個數列的和。 直接來判斷一個數是
python判斷一個數是否是2的幾次冪
判斷一個數是不是2的幾次冪,最簡單粗暴的做法就是直接迭代除以2,這裡有一個更好的方法,那就是採用位運算。 我們觀察下面屬於2的幾次冪的數的變化規律,用2進製表示。 十進位制 二進位制 0 0 2 10 4
判斷一個數是否是2的整數次冪,python實現。
問題:判斷一個數是否是2的整數次冪? 分析一:判斷一個數是否是是2的整數次冪。方法和思路也很多,其中最簡單的就是,用這個數除以2用除的商再除以2,直到最後被除數為2,證明這個數是2的整數次冪。這種思路
c語言==判斷一個數是否為2的整數次方【不使用迴圈】
對於判斷一個數是否為2的N次方問題,通常想到的最為直接的辦法就是對這個數不斷對2取餘,為0就將該數變為該數除以2,直到最後該數為1為止。 void judge(int n) { while(!(n % 2)) { n = n
判斷101-200之間有多少個素數,並輸出所有素數。 程式分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除, 則表明此數不是素數,反之是素數。
題目:判斷101-200之間有多少個素數,並輸出所有素數。 程式分析:判斷素數的方法:用一個數分別去除2到sqrt(這個數),如果能被整除, 則表明此數不是素數,反之是素數。 package bbb; /* * 判斷101-200之間有多少個素數,並輸出所有素數。
java 判斷一個數是否是2的整數次冪
有一道演算法題是這樣的,求一個數是否是2的整數次冪。 剛開始我的演算法是這樣寫的: 讓這個數每次都除以2,然後再乘以2,看這兩個數是否相等,不相等就返回false。放在迴圈裡面讓它從頭除到尾。 publicboolean isPower(int number){
【C語言】判斷一個數是否為2的n次方
//判斷一個數是否為2的n次方 #include <stdio.h> int is_two_n(int num) { if ((num&(num - 1))) //去掉一個1
劍指offer——面試題15.1:判斷一個數是否為2的整數次方
lose while ios play 技術 using pow ret offer 1 #include"iostream" 2 using namespace std; 3 4 bool IsTwoPower(int n) 5 { 6 retu
遞歸--練習9--noi8758 2的冪次方表示
efi fine -a ret problem 來源 n! cnblogs color 遞歸--練習9--noi8758 2的冪次方表示 一、心得 找準子問題就好 二、題目 8758:2的冪次方表示 總時間限制: 1000ms 內存限制: 65536kB描述 任何一個
004:2的冪次方表示
nbsp fir 同時 但是 const tor ace fin div 描述 任何一個正整數都可以用2的冪次方表示。例如: 137=27+23+20 同時約定方次用括號來表示,即ab可表示為a(b)。由此可知,137可表示為: 2(7)+2(3)+2(0)
CCF NOI1074. 2的冪次方表示【遞迴】
時間限制: 1000 ms 空間限制: 262144 KB 具體限制 題目描述 任何一個正整數都可以用2的冪次方表示。 例如:137=27+23+20。 同時約定方次用括號來表示,即ab可表示為a(b)。 由此可知,137可表示為:2(7)+2(3)+2(0
CCF NOI1074. 2的冪次方表示 (C++)
1074. 2的冪次方表示 題目描述 任何一個正整數都可以用2的冪次方表示。 例如:137=27+23+20。同時約定方次用括號來表示,即ab可表示為a(b)。由此可知,137可表示為:2(7)+2(3)+2(0)。進一步:7=22+2+20(21用2表示),3=2+20 。
快速判斷一個數能否被 2 ,3 ,4 ,5, 7,9,11 整除
性質1:如果數a、b都能被c整除,那麼它們的和(a+b)或差(a-b)也能被c整除。 性質2:幾個數相乘,如果其中有一個因數能被某一個數整除,那麼它們的積也能被這個數整除。 能被2整除的數:個位上的數能被2整除(偶數都能被2整除) 能被3整除的數:各個數位上的數字和能被
1208:2的冪次方表示
一、題目描述 任何一個正整數都可以用2的冪次方表示。例如: 137=27+23+20 同時約定方次用括號來表示,即ab可表示為a(b)。由此可知,137可表示為: 2(7)+2(3)+2(0) 進一步:7=22+2+20(21用2表示) 3=2+20 所以最後137可表示為: 2(2(2)+
演算法_遞迴(正整數的冪次方表示)
遞迴 一、概念 函式呼叫自身。 注意:遞迴程式可能更加簡潔,但是不一定節省時間。 二、案例 案例網址:http://cxsjsxmooc.openjudge.cn/2018t2fallw2/2/ 總時間限制: 1000ms 記憶體限制: 65536kB描述 任何一個正整數都可以用2的冪次方表示。例如: