📄 1028 - hanoi tower sequence.cpp
字号:
/*#include<iostream>
//#include<fstream>
#include<string>
#include<stdlib.h>
using namespace std;
#define MAX 102
int main()
{
//string num;
char num[MAX];
int caseNum;
int i,j;
int result;
int remainder;
int len;
cin>> caseNum;
for( j=0; j< caseNum; j++ )
{
cin >> num;
len=strlen(num);
result=0;
while(true)
{
remainder=0;
for( i=0; i< len; i++)
{//一个完整for循环后,num值是原值除以2的商,remainder是余数
remainder = remainder*10 + num[i]-'0';//注意:num[0]是“高”位
num[i] = remainder/2+'0';
remainder %= 2;
}
if( remainder == 0 )
++result; // 数字的地址
else
{
cout << "Case " << j +1<< ": " << result+1 << endl;
//因为数字地址Addr[result]=2^(result-1),故result要+1,因为之前循环计算的是括号里面的值
if( j!= caseNum-1 )
cout << endl;
break;
}
}
}
return 0;
}
*/
#include<iostream>
#include<string>
using namespace std;
int main()
{
string num;
int caseNum;
int i,j;
int result;
int remainder;
cin>> caseNum;
for( j=0; j< caseNum; j++ )
{
cin >> num;
result=0;
while(true)
{
remainder=0;
for( i=0; i< num.length(); i++)
{//一个完整for循环后,num值是原值除以2的商,remainder是余数
remainder = remainder*10 + num[i]-'0';//注意:num[0]是“高”位
num[i] = remainder/2+'0';
remainder %= 2;
}
if( remainder == 0 )
++result; // 数字的地址
else
{
cout << "Case " << j +1<< ": " << result+1 << endl;
//因为数字地址Addr[result]=2^(result-1),故result要+1,因为之前循环计算的是括号里面的值
if( j!= caseNum-1 )
cout << endl;
break;
}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -