1. 程式人生 > 其它 >與1共舞數字

與1共舞數字

技術標籤:C語言_王曉東資料結構演算法實驗題

與1共舞數字:以二進位制數表示(0或1),每個0左側必有一個1與其相鄰
例如n=3時,有101,110和111是與1共舞數字

示例輸入:		示例輸出:
1				1
3				3
#include<stdio.h>
#include<math.h>

void method (int n);

int main () {
	int n;
	scanf("%d", &n);
	method(n);
	
	return 0;
}
 
void method (int n) {
	int num[(int
)pow(2, n)][n], i; for(i = 0; i < (int)pow(2, n); i ++) { int j, temp = i; for(j = 0; j < n; j ++) { if(temp != 0) { num[i][j] = temp % 2; } else { // 補零 num[i][j] = 0; } temp /= 2; } } int time = 0; for(i = 0; i < (int)pow(2, n); i ++) { int j, fault = 0; for(j =
0; j < n; j ++) { if(num[i][j] == 0 && num[i][j+1] == 0 || num[i][j] == 0 && j+1 == n) { fault = 1; // 標1不符合條件 } } if(!fault) { time++; } } printf("%d", time); }