题目有点问题

------监狱栅栏------ · 发布于 2024-08-16 · 浏览 665 回复 0
#include <iostream>
using namespace std;
int v[20];

void p(int n) {
	if (n == 0)
	{
		printf("0");
		return;
	}
	for (int i = 15; i >= 0; i--) {
		if (n < 4) break;
		if (n > (1 << i)) {
			n -= 1 << i;
			printf("2(");
			p(i);
			printf(")+");
		}
		if (n == (1 << i)) {
			n -= 1 << i;
			printf("2(");
			p(i);
			printf(")");
		}
	}
	if (n == 3) {
		printf("2+2(0)");
	}
	else if (n == 2) {
		printf("2");
	}
	else if (n == 1) {
		printf("2(0)");
	}

}

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

© 2019 - 2024王码编程  滇ICP备19007937号-1如果您有任何问题

全部回复 共 0 条

还没有人回复。往下写第一条。

发表回复