我该如何解决呢?

时间:2019-04-23 04:35:54

标签: c

我正在尝试解决此逻辑难题,但我无法。任何帮助或提示,将不胜感激!

#include<stdio.h>
int main() {

    int arr[10];
    int i, x;

    for (i=0; i<10; i++)
    {
        scanf("%d", &x);
        arr[i] = x;
    }

    x = 0;
    for (i=0; i<10; i++)
    {
        x += arr[i];
        if (x != i * i)
        {
            printf("BOOM!\n");
            return 0;
        }
    }

    printf("Bomb defused\n");
}

1 个答案:

答案 0 :(得分:1)

0,1,3,6,10,15,21,28,36,45,(55 ..)

让我知道是否可行,实际上您只需要提高到45。

EDIT 好,我修复了它

int main(void) {

//int arr[10] = {0,1,3,6,10,15,21,28,36,45};
int arr[10] = {0,1,3,5,7, 9,11,13,15,17};
int i = 0;
int x = 0;
int temp = -0;

for(;i<10;i++){
    x += arr[i];
    if (x != i*i){
        printf("this one fails %d, shoulud be %d but is %d\n", i, (i*i), x);
    }
}

return 0;
}

它只是奇数,这一定是我忘了的数学运算。我最初只是添加前一个元素,即它的累积性。

{0,1,3,5,7,9,11,13,15,17}