我正在尝试解决此逻辑难题,但我无法。任何帮助或提示,将不胜感激!
#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");
}
答案 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}