这有两道tc的问题。。。请帮忙看看。。。谢谢。。。

10yue 2003-08-23 09:46:53
一:
main()
{int m=0,n=14;
for(;m<2;m++)
{for(;n>=0;n--,n--)
if((m+n)%3)
{--n;
printf("&%d",m+n);
}
else
{n-=2;
printf("*%d",m-n);
}
printf("%%");
}
}
不明白的地方,n--,n--怎么执行?还有(m+n)%3这个条件是什么意思???我按f8键执行的时候发现在第二个for那里执行了四次,能不能告诉每次的m和n的每次的值!

二:
这是一道判断素数的题目。
#include <math.h>
main()
{int m,i,k;
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=m;i++)
if(m%i==0) break;
if(i>=k+1) printf("%d is a prime number!",m);
else printf("%d is not a prime number!",m);
}
首先我知道素数的意思,只能被一和本身整除的数,那么题目中设k这个表达式的意思是什么?还有为什么不把i的初值为一呢?最后i>=k+1什么意思,而if(m%i==0)就停止了???
...全文
22 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
10yue 2003-08-23
  • 打赏
  • 举报
回复
不好意思,我没有多少分了拉,,,问题问的太多啊。。。呵呵。。。谢谢二位!!!
Zeroins 2003-08-23
  • 打赏
  • 举报
回复
认识的,只是我改名字了
现在跟我 QQ 的名字差不多了
^-^
Zeroins 2003-08-23
  • 打赏
  • 举报
回复
至于第二题:
同意 lyff8neo(山羊)
素数本身大于等于自己的平方根取整加 1
一个可以整除非素数的数小于此非素数的平方根取整加 1
它仅仅是利用了素数的一个性质,应该不用搞的这麽麻烦的

beyondfan 2003-08-23
  • 打赏
  • 举报
回复
天啊
Zeroins 2003-08-23
  • 打赏
  • 举报
回复
先第一题:
我用 gcc 编译的结果是 &13&10&7&4&1%%

n--,n-- 在这儿就是 n 减 2 呗。(m + n) % 3 是指 m 与 n 的和如果不能被 3 整除就 if,否则 else。

1> m == 0, n == 14
if ((0 + 14) % 3)
{
--n; (n = 13;)
printf ("&%d", m + n); (&13)
}
else { ... }
2> m == 0, n == 11
if ((0 + 11) % 3)
{
--n; (n = 10;)
printf ("&%d", m + n); (&10)
}
else { ... }
3> m == 0, n == 8
if ((0 + 8) % 3)
{
--n; (n = 7;)
printf ("&%d", m + n); (&7)
}
else { ... }
4> m == 0, n == 5
if ((0 + 5) % 3)
{
--n; (n = 4;)
printf ("&%d", m + n); (&4)
}
else { ... }
5> m == 0, n == 2
if ((0 + 2) % 3)
{
--n; (n = 1;)
printf ("&%d", m + n); (&1)
else { ... }
6> m == 0, n == -1 (end)

外层的 for (后面的两个%)我想就不用说了吧
lyff8neo 2003-08-23
  • 打赏
  • 举报
回复
第一题的顺序应该是从右到左执行的,因为这个和编译器有关的,不同的编译器是不同的!
(m+n)%3这个是取模,就是取余数!

第二题主要是数学上的问题呢,你想想,如果被这个数整除的数最大就是它的平方根呢,否则就会和前面重复呢,其它的我不多讲呢!自己想想!

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧