99问答网
所有问题
for( k=m*t; t%k!=0||m%k!=0; k--);请问这一条c语言代表什么?急!!!跪求答案,感激不尽!
如题
举报该问题
推荐答案 2014-02-21
1、k=m*t;
2、循环条件 t%k!=0||m%k!=0 ,当t或m中至少有一个不被k整除时结果为1,否则当两个同时能被k整除时结果为0;
3、因此从m*t开始每次k值减1,依次判断m和t是否能同时被更新后的k整除,如果是循环就结束;
4、综合上述分析,该循环用于求m和t的最大公约数。
举例:m=24,t=36,所以k=864,
首先m和t显然都不能被864整除,接下来k--,使k变为864
再判断m和t是否都能被863整除,既然不可以再k--,k变为862,依次类推,直到k递减到12时,t和m都可以被12整除,循环结束,此时的k的值是12,也就是24和32的最大公约数。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/BOvBevO7zWzv7jOW7B.html
其他回答
第1个回答 2014-02-21
一个循环,K从m*t开始,每次递减1,直到t%k=0且m%k=0时终止循环。
这是求t和k的最大公约数吧。
K从m*t开始,逐一去和t,m取模,当取模后的结果都=0时,说明k是这两个数的公约数,而k又是从m*t开始递减的,所以找到的第一个符合条件的数即为最大公约数
第2个回答 2014-02-21
for( k=m*t; t%k!=0||m%k!=0; k--);
等价于
while (1) {
if ((t % k == 0) && (m % k==0)) {
break;
}
k--;
}
求最m,t的大公约数k(注:这样写前提是m>0并且t>0,而且效率也比较低)
相似回答
大家正在搜
相关问题
for(;(k%m!=0) || (k%n!=0);k++)...
for(k=m;k%n!=0;)
for(;k!=0;)是什么意思?
麻烦高手指点如何用matlab程序求解微分方程,求m的值:d...
#include "stdio.h" #define N 1...
这个时间复杂度咋算出来的? t=1,m=0; for(k=0...
麻烦高手给修改下这个程序,我运行提示 ??? L=k-w...