看看这个思路怎么样
末位淘汰制,直到大家整除的数量一样,且数量=剩下的-1
😰😰😰😰 本帖最后由 jhq999 于 2021-11-21 16:18 编辑
又想错了 jhq999 发表于 2021-11-21 16:04
又想错了
我出答案了 但是需要优化一下 这个怎么发图片啊?我发给你看看 本帖最后由 jhq999 于 2021-11-21 17:21 编辑
chenwhccc 发表于 2021-11-21 16:21
我出答案了 但是需要优化一下 这个怎么发图片啊?我发给你看看
发代码啊!
给我一个实例,自己想实例验证太麻烦了,不知道做的对不对
jhq999 发表于 2021-11-21 17:16
发代码啊!
给我一个实例,自己想实例验证太麻烦了,不知道做的对不对
能加一下QQ吗 这个网站我不知道怎么发 本帖最后由 jhq999 于 2021-11-21 17:40 编辑
chenwhccc 发表于 2021-11-21 17:26
能加一下QQ吗 这个网站我不知道怎么发
你是用手机还是PC,pc直接按
红圈里的<>,把代码复制到出现的对话框里
输出实例和答案也如此操作 jhq999 发表于 2021-11-21 17:16
发代码啊!
给我一个实例,自己想实例验证太麻烦了,不知道做的对不对
#include <stdio.h>
int main()
{
int n,k,i,j,a=0;
long A,b;
int a1=0,a2=0,a3=0;
scanf("%d %d",&n,&k);
for(i=0;i<n;i++)
{
scanf("%d",&A);
b=A%k;
if(b==0)
{
a1++;
}
if(b==k*(1/2))
{
a2++;
}
if(a3=0)
for(j=i-1;j<n;j--)
if(b+b==k)
{
a3=1;
}
}
if(a1>a2)
a=a1;
else
a=a2;
if(a>=2)
printf("%d",a);
else
if(a3==1)
printf("2");
else
printf("-1");
return 0;
} jhq999 发表于 2021-11-21 17:16
发代码啊!
给我一个实例,自己想实例验证太麻烦了,不知道做的对不对
这个答案能运行出来但是 时长很长 需要优化 本帖最后由 jhq999 于 2021-11-21 17:44 编辑
#include <stdio.h>
int main()
{
int n,k,i,j,a=0;
long A,b;
int a1=0,a2=0,a3=0;
scanf("%d %d",&n,&k);
for(i=0;i<n;i++)
{
scanf("%d",&A);
b=A%k;
if(b==0)
{
a1++;
}
if(b==k*(1/2))
{
a2++;
}
if(a3=0)
for(j=i-1;j<n;j--)
if(b+b==k)
{
a3=1;
}
}
if(a1>a2)
a=a1;
else
a=a2;
if(a>=2)
printf("%d",a);
else
if(a3==1)
printf("2");
else
printf("-1");
return 0;
} jhq999 发表于 2021-11-21 17:42
这个是优化之后的吗? chenwhccc 发表于 2021-11-21 17:47
这个是优化之后的吗?
这是你的,我给你改改,你看对不对,发个例子过来 输入5 3
1 2 3 3 6
输出3 #include <stdio.h>
int main()
{
int n,k,i,j,a=0;
long A,b;
int a1=0,a2=0,a3=0;
scanf("%d %d",&n,&k);
for(i=0;i<n;i++)
{
scanf("%d",&A);
b=A%k;
if(b==0)
{
a1++;
}
if(b==k/2)
{
a2++;
}
if(a3==1)
continue;
for(j=i+1;j<n;j++)
if(b+b==k)
{
a3=1;
}
}
if(a1>a2)
a=a1;
else
a=a2;
if(a>=2)
printf("%d",a);
else
if(a3==1)
printf("2");
else
printf("-1");
return 0;
}
一直无法优化 chenwhccc 发表于 2021-11-21 18:03
8 7
1 3 5 7 9 11 13 15
这个结果是-1出错 jhq999 发表于 2021-11-21 18:28
8 7
1 3 5 7 9 11 13 15
这个结果是-1出错
#include <stdio.h>
int main()
{
int n,k,i,j,a=0;
long A,b;
int a1=0,a2=0,a3=0;
scanf("%d %d",&n,&k);
for(i=0;i<n;i++)
{
scanf("%d",&A);
b=A%k;
if(b==0)
{
a1++;
}
if(k%2==0)
if(b==k/2)
{
a2++;
}
if(a3==1)
continue;
for(j=i-1;j>=0;j--)
if(b+b==k)
{
a3=1;
}
}
if(a1>a2)
a=a1;
else
a=a2;
if(a>=2)
printf("%d",a);
else
if(a3==1)
printf("2");
else
printf("-1");
return 0;
}
chenwhccc 发表于 2021-11-21 17:54
输入5 3
1 2 3 3 6
输出3
这是对的你能看看帮我改改吗或者其他方法 本帖最后由 jhq999 于 2021-11-21 19:15 编辑
chenwhccc 发表于 2021-11-21 18:34
7 11
1 3 5 7 9 11 13 15
2
可以了
页:
1
[2]