社区讨论
c语言非要超时吗!
B3629吃冰棍参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mhizze3h
- 此快照首次捕获于
- 2025/11/03 18:28 4 个月前
- 此快照最后确认于
- 2025/11/03 18:28 4 个月前
求修改 ai让我在此基础上 在函数里面再加一个while以处理较大的数据 然而原来超时的测试点依旧超时 ai也曾经让我在主函数第二个while也用二分法 然而这个while不会超过三次 我感觉完全没必要
C#include<stdio.h>
int huan(int chu)//输入一开始有几个 输出最后能吃几个
{
int kong=chu,zong=chu;
while(kong>=3)
{
int exchange=kong/3;
zong=zong+kong/3;
kong=kong%3+kong/3;
}
return zong;
}
int main()
{
int i=1;
int n,x,kong=0,mid,a=1,b,total;//n是总数 x是初始数
scanf("%d",&n);
b=n;
mid=(a+b)/2;
while(a<b)
{
total=huan(mid);
if(total>n)
{
if(total-n>=3)
{
b=mid;
mid=(a+b)/2;
}
else
{
break;
}
}
if(total<n)
{
a=mid+1;
mid=(a+b)/2;
}
}
while(huan(mid-i)>=n)
{
i++;
}
mid=mid-i+1;
printf("%d",mid);
}
回复
共 3 条回复,欢迎继续交流。
正在加载回复...