A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李竞还活着 中级黑马   /  2015-6-5 00:29  /  938 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天基础视频里提到程序优化问题,我想问一下程序优化是以代码少为标准还是执行量小为标准,是怎么权衡的?

2 个回复

倒序浏览
这些不是学基础要考虑的。。这个要学数据结构和编译原理了
回复 使用道具 举报
晗修 发表于 2015-6-5 00:32
这些不是学基础要考虑的。。这个要学数据结构和编译原理了

主要是今天我看到一个提问,是求最大公约数和最小公倍数的问题,代码答案如下:
#include <stdio.h>
int main(int argc, const char * argv[])
{
     int num1 = 0;
     int num2 = 0;
     int gcd = 0; //最大公约数
    int lcm = 0; //最小公倍数
    printf("请输入两个数:\n");
     scanf("%d%d", &num1, &num2);
     int product = num1*num2;
     
     if (num1 > num2)//始终让num1是最小数。
    {
         int temp = num1;
         num1 = num2;
         num2 = temp;
     }
     
     for (int i = num1; i > 0; i--) {
         if (num1%i == 0 && num2%i == 0) {
             gcd = i;
             break;
         }
     }
     lcm = product/gcd;
     printf("gcd = %d\n", gcd);
     printf("lcm = %d\n", lcm);
     return 0;
}
然后我就感觉,即使不比较num1 和num2大小(也就是去除if部分),直接进行for循环应该也是可以找到最大公约数的,只是可能会多循环一些。所以就考虑到优化问题。
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马