题目在这里1028
看似繁琐,其实只需要找规律即可,关键词:对称
下面是我的代码
#include<iostream>
#include<string>
using namespace std;
int calc(string p)
{
int count = 0, remainder, candidate = 0;
while (1)
{
for (int i = 0; i < p.length(); i++)
{
candidate = (p[i] - '0') + candidate * 10;
remainder = candidate % 2;
p[i] = (char)(candidate / 2 + '0');
candidate = remainder;
}
count++;
if (remainder == 1)
break;
}
return count;
}
int main()
{
int T;
string p;
cin >> T;
for (int i = 1; i <= T; i++)
{
cin >> p;
cout << "Case " << i << ": " << calc(p) << endl;
cout << endl;
}
system("pause");
return 0;
}