实用的生活知识参考!
当前位置:首页 > 我爱学习 > 英语 >Promise的基本用法

Promise的基本用法

  当 i=4 时,m=1×2×3×4,sum=1+1×2+1×2×3+1×2×3×4。

  看出规律来了吗?m 的值是一直往下乘,乘以 i 之前 m 的值是(i–1)的阶乘,乘以 i 之后 m 的值就是 i 的阶乘了。这样 i 循环到多少,m. 就立刻将这个数的阶乘计算出来,然后加到 sum 中。

  2) for 和 if 的嵌套使用。求 1 到 100 之间所有能被 3 整除的数之和。

  # includeint main(void){ int i; int sum = 0; for (i=3; i<100; ++i) { if (0 == i%3) { sum = sum +i; } } printf("sum = %d/n", sum); return 0;}

  输出结果是:

  sum = 1683

  大家想想如果不用 if,这个程序能不能写出来?当然能,能被 3 整除的数肯定是 3 的倍数,只要 i 每次自加 3 就行了。我们将这个程序写一下:

  # includeint main(void){ int i; int sum = 0; for (i=3; i<100; i+=3) { sum = sum +i; } printf("sum = %d/n", sum); return 0;}

  因为 ++i 每次只加 1,而 i+=3 每次加 3,所以这种写法与第一种写法比较起来计算机少执行很多步,所以执行起来更快。由此可知,完成相同的功能,算法不一样则效果就不一样。对计算机而言当然是执行得越快越好。

  3) 编写程序,输出 1~1000 之间所有的完全平方数。

  # include# include//要用sqrt()int main(void){ int i; //循环变量 int x; //存储每个数的二次方根 for (i=1; i<1000; ++i) { x = sqrt(i); /.果i不是完全平方数, 那么sqrt(i)肯定是小数, 而i是int型, 所以x是sqrt(i)取整后的值, 这样x.肯定不等于i. if (x. == i) { printf("%d/t", i); // /t是跳到下一个Tab位置 } } printf("/n"); return 0;}

  输出结果是:

  1 4 9 16 25 36 49 64 81 100

  121 144 169 196 225 256 289 324 361 400

  441 484 529 576 625 676 729 784 841 900

  961

  其实这个程序还有更简单的算法,不需要使用 sqrt()。下面将这个程序也写下来:

  # includeint main(void){ int i; //循环变量 for (i=1; i.<1000; ++i) { printf("%d/t", i .i); // /t是跳到下一个Tab位置 } printf("/n"); return 0;}

  输出结果是:

  1 4 9 16 25 36 49 64 81 100

  121 144 169 196 225 256 289 324 361 400

  441 484 529 576 625 676 729 784 841 900

  961