2

今日份练习(含九九乘法表)

 1 year ago
source link: https://blog.51cto.com/u_15740457/5635688
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

前言:在编写代码,给出一个题目前,自己总结了一套编程方案。

  1. 第一步选哟思考题目的思路
  2. 第二部在脑海中已有思路的情况下,将其算法实现
  3. 最后是在具体编程的过程中需要的注意事项(下面简称注意事项)

1·数9的个数

今日份练习(含九九乘法表)_练习

思路:分为两种情况。其一是个位数为9,其二是十位数为9.(可能需要考虑99这种特殊情况)

算法实现:个位数为9%10都余9;十位数为9除以10一定都商9

注意事项:

  • 自己审题不清,数一共多少个9,99是两个,所以99的count需要加两次
  • 而else if只能计数一次,所以应该用两个if 相连。if 与else if 区别需辨析清楚!
今日份练习(含九九乘法表)_练习_02

2·分数求和

今日份练习(含九九乘法表)_算法实现_03

思路:分成两拨,加为一组,减为另外一组,最后将其相加

另外一种思路,在此我用蓝色进行标识。

先直接计算分数和,最后再将部分加法变为减法。

算法实现:如何边加边减?------------较繁琐

我首先思考-1的n次方。凡是关于幂函数的可以跟循环扯上关系。故在for循环中,利用flag=-flag等式完美编译了-1的n次方!

  • 因为计算分数,不能用整型进行计算,要得到小数,必须要保证除号两端有一个数是浮点数
  • 故分子的1需要变成单精度浮点型,即1.0,而sum的类型也要是double。故double sum=0.0
  • 打印时也需要改成%lf  (LF)
  • flag=-flag在for循环里有奇效!
今日份练习(含九九乘法表)_九九乘法表_04

3·求最大值(求10个整数的最大值)

思路:创建一个变量max(借尸还魂),我总结了下,感觉在比较大小的问题上,总是需要创建一个恒定的变量去满足题目条件。

例如本题,要求最大值,我就向设置MAX就是最大值,然后通过比较将最大值存放进去。还有上次将三个数排序,也是向自我设置ABC,这三位就是从大到小排,经过比较后,再存放进去。

注意事项:本题最会误导的是不能自我代入,直接int max=0;而是需要“深入基层”int max=arr[0];在数组里面进行找寻。避免了数组里面全是负数,反而0成了最大值。

今日份练习(含九九乘法表)_算法实现_05

4· 九九乘法表

思路:先想九九乘法表的基本样式

1*1=1

2*1=2 2*2=4

3*1=3 3*2=6 3*3=9

9*1=9  …………9*9=81

接着需要发现规律:

不难发现乘法表是以 a*b的形式进行演绎,其中a随着行数的增加而增加,b随着列数的增加而增加。

算法实现:像这种随着什么增加而增加,可以利用循环体实现。

注意事项:

  • 今日份练习(含九九乘法表)_九九乘法表_06

  •  打印多个字符,不同字符用逗号隔开。
  • 今日份练习(含九九乘法表)_九九乘法表_07

  • 可以直接换行。
  • 今日份练习(含九九乘法表)_九九乘法表_08
  • 输出结果没有对齐,
  • 今日份练习(含九九乘法表)_练习_09

  • 可以在%和d之间添上-2-------左对齐,直接添上2是右对齐。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK