能力值:
( LV2,RANK:10 )
|
-
-
2 楼
oj吗,好像那种int a[100]的方法是不行的。另外那个k是干嘛的
|
能力值:
( LV11,RANK:180 )
|
-
-
3 楼
n、m(代表上面题目中提到的意思1≤n, m≤230)。
int a[100];
int b[100];
STACK_OVERFLOW
|
能力值:
( LV12,RANK:270 )
|
-
-
4 楼
好囧~~
这种题要读取一组数据,就输出一组结果,测试数据绝对要多于100组,你那个数组必定要越界~~
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
我又运行了一次 发现如果数据太大的话执行会长时间 (因为用了两个循环)
这方面有好的解决办法吗?
还有就是怎么 输入一组数据 直接输出? 要满足题意呀
|
能力值:
( LV12,RANK:270 )
|
-
-
6 楼
#include <stdio.h>
int main()
{
int m,n,tmp,ans;
while(scanf("%d %d",&n,&m), n && m)
{
tmp = m - 2 * n;
if(tmp < 0 || tmp % 2 == 1)
{
printf("Error\n");
continue;
}
ans = tmp / 2;
printf("%d %d\n", ans, n - ans);
}
return 0;
}
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
算法上试试这么写呢,
int tou,leg;
int gezi=0,tuzi=0;
scanf("%d %d",&tou,&leg);
tuzi=(leg-tou*2)/2;
gezi=tou-tuzi;
printf("tuzi=%d\ngezi=%d\n",tuzi,gezi);
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
引用poj:Runtime Error RE The solution has caused an unhandled exception (as defined by the runtime environment) during execution.
要么动态分配内存吧,或者根据他给的情况,char类型就可以存放输入数据。150*230才占了34k不到。
for (j=1;j<=b[i];j++)
for(q=1;q<=a[i];q++)
if((q+j)==a[i]&&(2*q+4*j)==b[i])
这点我有点小不明白。q代表鸽子数,j代表兔子数,而a数组保存头数,b数组保存脚数。循环判断条件有点小诡异
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
while(scanf("%d %d",&n,&m), n && m) 确实也没必要一下子全读进来。明显这才是做算法题的常规路子。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
我是想头数最大也不会大过总头数吧
脚数也是这样
想着减少循环次数 可还是很麻烦
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
是啊 我才 刚刚接触 让各位见笑了
有些处理技巧还不是很明白
不过亏了 各位 真是感谢!
|
|
|