1 3 4 9 10 12 13 27 这个数列的算法是正确了吗?

//  1    3      4      9      10       12        13       27
// 3^0  3^1  3^0+3^1  3^2  3^0+3^2  3^1+3^2 3^0+3^1+3^2  3^3
//  1    2      3      4      5        6         7        8     
//  1b   10b    11b    100b   101b     110b     111b     1000b
// 把上面的二进制数为 1 的地方替换成 3 的相应【位】次方(从0开始)
// 并求和则得到相应的结果
#include <stdio.h>

int main(void) {
	int k = 3, N, a, b, c = 0, cc, sum = 0, i, n;
	for(n = 1; n <= 100; n++) {
		N = n;
		sum = 0;
		c = 0;
		cc = 0;
		while(N) {
			a = N % 2;
			N /= 2;
			if(a) {
				cc++;
			}
		}
		N = n;
		while(N) {
			a = N % 2;
			N /= 2;
			if(a) {
				for(b = 1, i = 0; i < c; i++) { 
					b *= k;
				}
				sum += b;
				printf("3^%d", c);
				if(--cc) {
					printf(" + ");
				}
			}
			c++;
		}
		printf("  ==  %d       是第%d项\n",sum , n);	
	}
}


/*
C:\Users\Administrator>gcc -o TT_1_3_4_9_10_12 TT_1_3_4_9_10_12.c

C:\Users\Administrator>TT_1_3_4_9_10_12
3^0  ==  1       是第1项
3^1  ==  3       是第2项
3^0 + 3^1  ==  4       是第3项
3^2  ==  9       是第4项
3^0 + 3^2  ==  10       是第5项
3^1 + 3^2  ==  12       是第6项
3^0 + 3^1 + 3^2  ==  13       是第7项
3^3  ==  27       是第8项
3^0 + 3^3  ==  28       是第9项
3^1 + 3^3  ==  30       是第10项
3^0 + 3^1 + 3^3  ==  31       是第11项
3^2 + 3^3  ==  36       是第12项
3^0 + 3^2 + 3^3  ==  37       是第13项
3^1 + 3^2 + 3^3  ==  39       是第14项
3^0 + 3^1 + 3^2 + 3^3  ==  40       是第15项
3^4  ==  81       是第16项
3^0 + 3^4  ==  82       是第17项
3^1 + 3^4  ==  84       是第18项
3^0 + 3^1 + 3^4  ==  85       是第19项
3^2 + 3^4  ==  90       是第20项
3^0 + 3^2 + 3^4  ==  91       是第21项
3^1 + 3^2 + 3^4  ==  93       是第22项
3^0 + 3^1 + 3^2 + 3^4  ==  94       是第23项
3^3 + 3^4  ==  108       是第24项
3^0 + 3^3 + 3^4  ==  109       是第25项
3^1 + 3^3 + 3^4  ==  111       是第26项
3^0 + 3^1 + 3^3 + 3^4  ==  112       是第27项
3^2 + 3^3 + 3^4  ==  117       是第28项
3^0 + 3^2 + 3^3 + 3^4  ==  118       是第29项
3^1 + 3^2 + 3^3 + 3^4  ==  120       是第30项
3^0 + 3^1 + 3^2 + 3^3 + 3^4  ==  121       是第31项
3^5  ==  243       是第32项
3^0 + 3^5  ==  244       是第33项
3^1 + 3^5  ==  246       是第34项
3^0 + 3^1 + 3^5  ==  247       是第35项
3^2 + 3^5  ==  252       是第36项
3^0 + 3^2 + 3^5  ==  253       是第37项
3^1 + 3^2 + 3^5  ==  255       是第38项
3^0 + 3^1 + 3^2 + 3^5  ==  256       是第39项
3^3 + 3^5  ==  270       是第40项
3^0 + 3^3 + 3^5  ==  271       是第41项
3^1 + 3^3 + 3^5  ==  273       是第42项
3^0 + 3^1 + 3^3 + 3^5  ==  274       是第43项
3^2 + 3^3 + 3^5  ==  279       是第44项
3^0 + 3^2 + 3^3 + 3^5  ==  280       是第45项
3^1 + 3^2 + 3^3 + 3^5  ==  282       是第46项
3^0 + 3^1 + 3^2 + 3^3 + 3^5  ==  283       是第47项
3^4 + 3^5  ==  324       是第48项
3^0 + 3^4 + 3^5  ==  325       是第49项
3^1 + 3^4 + 3^5  ==  327       是第50项
3^0 + 3^1 + 3^4 + 3^5  ==  328       是第51项
3^2 + 3^4 + 3^5  ==  333       是第52项
3^0 + 3^2 + 3^4 + 3^5  ==  334       是第53项
3^1 + 3^2 + 3^4 + 3^5  ==  336       是第54项
3^0 + 3^1 + 3^2 + 3^4 + 3^5  ==  337       是第55项
3^3 + 3^4 + 3^5  ==  351       是第56项
3^0 + 3^3 + 3^4 + 3^5  ==  352       是第57项
3^1 + 3^3 + 3^4 + 3^5  ==  354       是第58项
3^0 + 3^1 + 3^3 + 3^4 + 3^5  ==  355       是第59项
3^2 + 3^3 + 3^4 + 3^5  ==  360       是第60项
3^0 + 3^2 + 3^3 + 3^4 + 3^5  ==  361       是第61项
3^1 + 3^2 + 3^3 + 3^4 + 3^5  ==  363       是第62项
3^0 + 3^1 + 3^2 + 3^3 + 3^4 + 3^5  ==  364       是第63项
3^6  ==  729       是第64项
3^0 + 3^6  ==  730       是第65项
3^1 + 3^6  ==  732       是第66项
3^0 + 3^1 + 3^6  ==  733       是第67项
3^2 + 3^6  ==  738       是第68项
3^0 + 3^2 + 3^6  ==  739       是第69项
3^1 + 3^2 + 3^6  ==  741       是第70项
3^0 + 3^1 + 3^2 + 3^6  ==  742       是第71项
3^3 + 3^6  ==  756       是第72项
3^0 + 3^3 + 3^6  ==  757       是第73项
3^1 + 3^3 + 3^6  ==  759       是第74项
3^0 + 3^1 + 3^3 + 3^6  ==  760       是第75项
3^2 + 3^3 + 3^6  ==  765       是第76项
3^0 + 3^2 + 3^3 + 3^6  ==  766       是第77项
3^1 + 3^2 + 3^3 + 3^6  ==  768       是第78项
3^0 + 3^1 + 3^2 + 3^3 + 3^6  ==  769       是第79项
3^4 + 3^6  ==  810       是第80项
3^0 + 3^4 + 3^6  ==  811       是第81项
3^1 + 3^4 + 3^6  ==  813       是第82项
3^0 + 3^1 + 3^4 + 3^6  ==  814       是第83项
3^2 + 3^4 + 3^6  ==  819       是第84项
3^0 + 3^2 + 3^4 + 3^6  ==  820       是第85项
3^1 + 3^2 + 3^4 + 3^6  ==  822       是第86项
3^0 + 3^1 + 3^2 + 3^4 + 3^6  ==  823       是第87项
3^3 + 3^4 + 3^6  ==  837       是第88项
3^0 + 3^3 + 3^4 + 3^6  ==  838       是第89项
3^1 + 3^3 + 3^4 + 3^6  ==  840       是第90项
3^0 + 3^1 + 3^3 + 3^4 + 3^6  ==  841       是第91项
3^2 + 3^3 + 3^4 + 3^6  ==  846       是第92项
3^0 + 3^2 + 3^3 + 3^4 + 3^6  ==  847       是第93项
3^1 + 3^2 + 3^3 + 3^4 + 3^6  ==  849       是第94项
3^0 + 3^1 + 3^2 + 3^3 + 3^4 + 3^6  ==  850       是第95项
3^5 + 3^6  ==  972       是第96项
3^0 + 3^5 + 3^6  ==  973       是第97项
3^1 + 3^5 + 3^6  ==  975       是第98项
3^0 + 3^1 + 3^5 + 3^6  ==  976       是第99项
3^2 + 3^5 + 3^6  ==  981       是第100项
*/
发布了159 篇原创文章 · 获赞 14 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_39410618/article/details/101720854