| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
你的程序只输入了一组数据。In Reply To:又是说答案错误了!是怎么回事啊,我想了很多遍了哦。能否给我多些测试用例。麻烦了。各位高手!我真的投降了! Posted by:plumage at 2005-05-18 23:33:49 /*
贴一份代码,给你参考一下。
主函数里有一个循环:
while(scanf("%s",str) != EOF)
{
//...
}
用来输入多组数据。
如果用cin:
cin >> str;
while(cin) //or while(!cin.fail())
{
//...
cin >> str;
}
*/
#include <stdio.h>
#include <string.h>
int num[100],temp[100];
int n;
void cpy(int num1[100],int num2[100],int n)
{
int i;
for(i=1;i<=n;i++)
num1[i] = num2[i];
}
int cmp(int num1[100],int num2[100],int n)
{
int i;
for(i=1;i<=n;i++)
if(num1[i]!=num2[i])
return 0;
return 1;
}
void shl(int num[100],int n)
{
int i,temp = num[1];
for(i=1;i<n;i++)
num[i] = num[i+1];
num[n] = temp;
}
int mutiply(int num[100],int n,int x)
{
int i,j;
j = 0;
for(i=n;i>=1;i--)
{
num[i] = num[i]*x+j;
j = num[i]/10;
num[i] = num[i]%10;
}
if(j > 0)
return 0;
return 1;
}
int main()
{
int i,j;
char str[100];
while(scanf("%s",str) != EOF)
{
n = strlen(str);
for(i=1;i<=n;i++)
num[i] = str[i-1]-'0';
for(i=2;i<=n;i++)
{
cpy(temp,num,n);
if(!mutiply(temp,n,i))
break;
for(j=1;j<=n;j++)
{
shl(temp,n);
if(cmp(num,temp,n))
break;
}
if(j > n)
break;
}
if(i <= n)
{
printf("%s is not cyclic\n",str);
}
else
{
printf("%s is cyclic\n",str);
}
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator