标签:poj
| Time Limit: 1000MS | Memory Limit: 10000K | |
| Total Submissions: 12064 | Accepted: 5630 | 
Description
Input
Output
Sample Input
142857 142856 142858 01 0588235294117647
Sample Output
142857 is cyclic 142856 is not cyclic 142858 is not cyclic 01 is not cyclic 0588235294117647 is cyclic
题意:给出一个字符串,如果这个字符串分别用1,2,...,len去乘,最终得到的结果还是由这个字符串的字符组成的,那么它是cyclic;
解题思路:给出的数*(len+1)=9...9(len个),那么这个数是cyclic
参考代码:
#include <iostream>
#include <string.h>
using namespace std;
char s[100];
int a[100];
int main(){
	while (cin>>s){
		int len=strlen(s);
		memset(a,0,sizeof(a));
		int k=0,left=0;
		for (int i=len-1;i>=0;i--){
			int ans=(s[i]-'0')*(len+1)+left;
			a[k++]=ans%10;
			left=ans/10;
		}
		while (left!=0){
			a[k++]=left%10;
			left/=10;
		}
		int flag=0;
		for (int i=0;i<k;i++){
			if (a[i]!=9){
				flag=1;
				break;
			}
		}
		if (flag==1)
			cout<<s<<" is not cyclic"<<endl;
		else
			cout<<s<<" is cyclic"<<endl;
	}
	return 0;
}
标签:poj
原文地址:http://blog.csdn.net/codeforcer/article/details/43576701