#include <iostream>
using namespace std;
void toInteger(string n, int num[], int len) {
for(int i = 0; i < len; i++) {
num[i] = static_cast<int>(n[i] - '0');
}
}
void dividedBy2(int num[], int len, int& count) {
int remainder;
for(int i = 0; i < len; i++) {
if(i == len - 1) {
remainder = num[i] % 2;
num[i] /= 2;
}
else if(num[i] % 2 == 0) {
num[i] /= 2;
}
else {
num[i+1] += 10;
num[i]--;
num[i] /= 2;
}
}
count++;
if(remainder) {
return;
}
else {
dividedBy2(num, len, count);
}
}
int find(string n) {
int len = n.length();
int num[len];
toInteger(n, num, len);
int count = 0;
dividedBy2(num, len, count);
return count;
}
int main() {
int cases;
cin >> cases;
for(int count = 1; count <= cases; count++) {
string n;
cin >> n;
cout << "Case " << count << ": " << find(n) << endl;
if(count != cases) {
cout << endl;
}
}
return 0;
}
1028. Hanoi Tower Sequence
最新推荐文章于 2025-08-07 20:58:17 发布