1 条题解
-
0
C :
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char word[110]; while(scanf("%s",word)==1) { int len=strlen(word); int i,j; if(word[0]=='.'&&len==1) break; for(i=1; i<=len; i++) if(len%i==0) { int ok=1; for(j=i; j<len; j++) if(word[j]!=word[j%i]) { ok=0; break; } if(ok) { break; } }printf("%d\n",len/i); } return 0; }
C++ :
#include<cstdio> #include<string> using namespace std; char s[101]; int main() { string a,b,c; int i,t; while(scanf("%s",s)!=EOF) { a=s; if(a==".") break; b=""; for(i=0;;i++) { b+=a[i]; if(a.size()%b.size()) continue; c=""; t=0; while(c.size()<a.size()) { c+=b; t++; } if(c==a) { printf("%d\n",t); break; } } } return 0; }
Java :
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { String input = sc.nextLine(); if (input.equals(".")) { break; } System.out.println(foo(input)); } sc.close(); } private static int foo(String input) { for (int i = 1; i <= input.length(); i++) { if (input.length() % i == 0) { String unit = input.substring(0, i); boolean find = true; for (int j = 0; j < input.length(); j += i) { String temp = input.substring(j, j + unit.length()); if (!temp.equals(unit)) { find = false; break; } } if (find) { return input.length() / unit.length(); } } } return 1; } }
- 1
信息
- ID
- 1456
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者