您的位置:首页 > 编程语言 > Go语言

zoj 1073 Round and Round We Go

2012-01-07 19:24 465 查看
#include "iostream"
#include "string"
#include "algorithm"
using namespace std;

int main(int argc, char* argv[])
{
string str;
while (cin >> str)
{
string ss = str;
int length = str.size();
if (length == 1) break;
int temp = 0, flag = 0;
string s;
for (int j = 1; j <= length; j++)
{
s = "";
str = ss;
for (int i = length - 1; i >= 0; i--)//大数相乘的做法!
{
int ans = (str[i]-48) * j + temp;
if (ans >= 10)
{
temp = ans / 10;
ans %= 10;
}
else
{
temp = 0;
}
if (i == 0 && temp != 0)
{
s += (temp + 48);
break;
}
s += (ans + 48);
}
sort(str.begin(), str.end());//将两个字符串进行一个排序之后就容易比较出两个字符串是否相等了!
sort(s.begin(), s.end());
if (s != str)
{
flag = -1;
break;
}
else
continue;
}
if (flag == 0)
cout << ss << " is cyclic" << endl;
else
cout << ss << " is not cyclic" << endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: