Отримання знань

дистанційна підтримка освіти школярів


Мы одинаковы везде
http://acm.pku.edu.cn/JudgeOnline/problem?id=1047

   Входные данные

   Выходные данные

   Пример входных данных

   Пример выходных данных

   Анализ условия и обсуждение идеи решения

   Пример решения на C++:

#include < stdio.h >
#include < string.h >
typedef struct num num;
struct num {
int d[200];
int len;
};
void addhigh(num &a,num b) {
int i,jin=0;
for(i=0; i < a.len || i < b.len || jin > 0; i++) {
a.d[i]=a.d[i]+b.d[i]+jin;
jin=a.d[i]/10;
a.d[i]=a.d[i]%10; }
a.len=i;
return ;
}
int main() {
int i,j,k,temp;
char st[80];
num a,b;
while(scanf("%s",st)!=EOF) {
a.len=b.len=strlen(st);
for(i=a.len-1; i >= 0; i--) a.d[i]=b.d[i]=st[a.len-i-1]-'0';
for(i=1; i < b.len; i++) {
addhigh(a,b);
if(a.len!=b.len) {
printf("%s is not cyclic\n",st);
break; }
else {
for(j=0; j < a.len; j++) {
for(k=0; k < a.len; k++){
temp=(k+j)%a.len;
if(a.d[temp]!=b.d[k])
break;
}
if(k==a.len) break;
}
if(j==a.len) {
printf("%s is not cyclic\n",st);
break; }
}
}
if(i==b.len) printf("%s is cyclic\n",st);
}
return 0;
}

 

Попередня Зміст Наступна
В системі: гості - (); користувачі - (0)