lzl656565 2015-07-08 14:32 采纳率: 0%
浏览 1561

求大神看看,为什么UVa455我为什么总是WA啊。Debug 也找不到错误。

求大神看看,为什么UVa455 periodic string 我为什么总是WA啊。Debug 也找不到错误。

我的程序是这样的:

#include
#include
#include
#include

using namespace std;

int primes[26] = {1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 59, 61, 67, 71, 73, 79, 83, 89};

int isPrime(int x)
{
for(int i = 0; i < 26; i++){
if(primes[i] == x){
return 1;
}
}
return 0;
}

int main()
{
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
int n = 0;
scanf("%d", &n);
int answers[n];
for(int t = 0; t < n; t ++){
char input[90];
scanf("%s", input);
int length = strlen(input);
if(isPrime(length)){
answers[t] = length;
continue;
}
for(int i = 1; i <= length; i++){
if(length % i == 0){
int j = i;
for(; j < length; j++){
if(input[j] != input[j % i]){
break;
}
}
if( j == length){
answers[t] = i;
break;
}
}
}
}
int t = 0;
for(; t < n - 1; t ++){
printf("%d\n\n", answers[t]);
}
printf("%d\n", answers[t]);
return 0;
}

  • 写回答

2条回答 默认 最新

  • WorldMobile 2015-07-09 00:28
    关注

    代码帮你整理一下,太乱了

     #include 
    #include 
    #include 
    #include
    using namespace std;
    int primes[26] = {1, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 59, 61, 67, 71, 73, 79, 83, 89};
    int isPrime(int x)
    {
        for(int i = 0; i < 26; i++){
            if(primes[i] == x){
                return 1;
            }
        }
        return 0;
    }
    
    int main()
    {
        freopen("input.txt", "r", stdin);
        freopen("output.txt", "w", stdout);
        int n = 0;
        scanf("%d", &n);
        int answers[n];
        for(int t = 0; t < n; t ++){
            char input[90];
            scanf("%s", input);
            int length = strlen(input);
            if(isPrime(length)){
                answers[t] = length;
                continue;
            }
            for(int i = 1; i <= length; i++){
                if(length % i == 0){
                    int j = i;
                    for(; j < length; j++){
                        if(input[j] != input[j % i]){
                            break;
                        }
                    }
                    if( j == length){
                        answers[t] = i;
                        break;
                    }
                }
            }
        }
        int t = 0;
        for(; t < n - 1; t ++){
            printf("%d\n\n", answers[t]);
        }
        printf("%d\n", answers[t]);
        return 0;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏