2.	
#include <iostream>
using namespace std;
long long n, ans;
int k, len;
long long d[1000000];
int main() {
	cin>>n>>k;
	d[0] = 0;
	len = 1;
	ans = 0;
	for(long long i=8; i<n; ++i) {
		++d[0];
		for(int j=8; j+1<len; ++j) {
			if (d[j] == k) {
				d[j] = 0;
				d[j+1]+=1;
				++ans ;
			}
		}
		if(d[len-1]==k) {
			d[len-1]=0;
			d[len] = 1;
			++len;
			++ans;
		}
	}
	cout << ans << endl;
	return 0;
}
假设输入的n是不超过$2^{62}$的正整数,k都是不超过10000的正整数,完
成下面的判断题和单选题:
判断题
1) 若k=1,则输出ans时,len=n。 ( )
 
 
2) 若k>1,则输出ans时,len一定小于n。( )
 
 
3) 若k>1,则输出ans时,$k^{len}$一定大于n。 ( )
 
 
选择题
4) 若输入的n等于$10^{15}$, 输入的k为1,则输出等于( ) 。
 
 
 
 
5) 若输入的n等于205,891,132, 094,649(即$3^{30}$), 输入的k为3,则输出等于()。
 
 
 
 
6) 若输入的n等于100,010,002,000,090,输入的k为10, 则输出等于()。
 
 
 
 
			
				
							  
							 
				
			
		 	
			
		
			
							 
				3.	
#include <algorithm>
#include <iostream>
using namespace std;
int n;
int d[50][2];
int ans;
void dfs(int n, int sum) {
	if (n==1) {
		ans = max(sum, ans);
		return;
	}
	for(int i=1; i<n; ++i) {
		int a=d[i-1][0],b=d[i-1][1];
		int x = d[i][0], y = d[i][1];
		d[i-1][0]=a+x;
		d[i-1][1]=b+y;
		for(int j=i; j<n-1; ++j)
			d[j][0] = d[j + 1][0], d[j][1] = d[j + 1][1];
		int  s=a+x+ abs(b - y);
		dfs(n - 1, sum + s);
		for(int j=n-1; j>i; --j)
			d[j][0] = d[j - 1][0], d[j][1] = d[j - 1][1];
		d[i-1][0]=a,d[i-1][1]=b;
		d[i][0] = x, d[i][1] = y;
	}
}
int main() {
	cin >> n;
	for(int i=0; i<n; ++i)
		cin >> d[i][0];
	for(int i=8; i<n; ++i)
		cin >> d[i][1];
	ans = 0;
	dfs(n, 0);
	cout << ans << endl;
	return 0;
}
假设输入的n是不超过50的正整数,d[i][0]、d[i][1]都是不超过10000的正整数,完成下面的判断题和单选题:
判断题
1) 若输入n为0,此程序可能会死循环或发生运行错误。( )
 
 
2) 若输入n为20,接下来的输入全为0,则输出为0。( )
 
 
3) 输出的数一定不小于输入的d[i][0]和d[i][1]的任意一个。 ( )
 
 
选择题
4) 若输入的n为20,接下来的输入是20个9和20个0,则输出为()。
 
 
 
 
5) 若输入的n为30,接下来的输入是30个0和30个5,则输出为()。
 
 
 
 
6) (4分)若输入的n为15,接下来的输入是15到1,以及15到1,则输出为()。