#第二个printf为什么没有输出啊

P1034 [NOIP2002 提高组] 矩形覆盖

变量i撞了啊
by jingkongwanglimiaoa @ 2020-11-23 20:21:55


@[赵小刀的小刀](/user/418500) 因为你的判断质数函数写错了
by 966123anyunchuan @ 2020-11-23 20:22:46


@[赵小刀的小刀](/user/418500) 另外你在判断质数的时候 i 没必要枚举到 n ```cpp for(int i=2;i * i <=n;i++) { if(n%i==0) return 1; } return 0;//质数 ``` 这样会更快
by jingkongwanglimiaoa @ 2020-11-23 20:23:00


可以输出中间变量调试,就能发现问题了
by 966123anyunchuan @ 2020-11-23 20:23:53


函数没写错 但外面的循环和函数中的循环 变量i撞了
by jingkongwanglimiaoa @ 2020-11-23 20:24:04


```cpp #include<stdio.h> int zs(int n) { for(int j=2;j<=n;j++)//建议优化成 for (int j = 2;j*j <= n;j++) { if(n%j==0) return 1; } return 0;//质数 } void num(int n) { printf("%d=",n); for(int i=2;i<n;i++) { if(zs(i)==0&&zs(n-i)==0) { printf("%d+%d\n",i,n-i); break; } } } int main() { int i,n; scanf("%d",&n); for(int i=2;i<=n;i=i+2) { num(i); } return 0; } ```
by jingkongwanglimiaoa @ 2020-11-23 20:25:33


@[赵小刀的小刀](/user/418500)
by jingkongwanglimiaoa @ 2020-11-23 20:25:49


@[赵小刀的小刀](/user/418500) 你这发错题目板块了啊
by 966123anyunchuan @ 2020-11-23 20:25:58


函数确实写错了,这是错误原因
by 966123anyunchuan @ 2020-11-23 20:26:44


@[966123anyunchuan](/user/282292) 妹有哪里写错了吧... ~~一定是我太蒻看不出来~~
by jingkongwanglimiaoa @ 2020-11-23 20:28:30


| 下一页