1 条题解

  • 0
    @ 2024-12-24 9:59:26

    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
    上传者