C++培训_成都达内分享思维变算法
写程序的关键就是思维变算法,记C++实例讲解,很多时候,写程序都是思维变算法,算法变代码的过程,其中很关键的步就是思维变算法。
这里所说的思维就是,你眼睛能看出来规律。
再简单明了就是比如一个题目:统计一个英文字符串中的英文单词个数,如字符串“I am a student.”中的英文单词个数为4。
如果给你一个字符串 I am a student 。你一数就得到了答案4 ,这是很自然的事,被看作常识。可是关键,怎样转变为算法。
唉,这就是一个思维变算法的过程。这还得由简入繁追溯到大脑的底层数据。你大脑是怎么得到的4呢,因为你数了,你是怎么数的呢?噢是这样,出现了字母后面一个空格则这个就是一个单词,如果这个字母后面仍然是字母,则它还是同一个单词,这就是一个找非字母的把字母分开的过程然后统计数目的过程。
这就是一种机制,这种机制就是算法的皱形。
然后就可以通过这个画个流程,然后成了算法。
很多时候我们都是在进行如上所述的这个过程,而且这个要思维清晰。考虑很多事,诸如 如果有例外情况等等。
矩阵题就是这样:
03 82 81 80 79 78 77 76 75 74 73
05 83 50 49 48 47 46 45 44 43 72
07 84 51 26 25 24 23 22 21 42 71
09 85 52 27 10 9 8 7 20 41 70
11 86 53 28 11 2 1 6 19 40 69
13 87 54 29 12 3 4 5 18 39 68
15 88 55 30 13 14 15 16 17 38 67
17 89 56 31 32 33 34 35 36 37 66
19 90 57 58 59 60 61 62 63 64 65
21 91 92 93 94 95 96 97 98 99 100*/
24 //看到这个方阵,一想到的就是找规律。这个题目规律只有两个 转圈 自加
25 //转圈就要给数组元素定位,主要做的工作就是找规律然后根据规律用for简化,然后再赋值。
26 //如果把一圈当作一个循环的话,那整体循环N/2次
27
28 #include
29 using namespace std;
30 int main()
31 {
32 const int N=10;//这个就不说了
33
34 //先建立一个二维数组
35 int a[N][N];
36
37 //为了观察运行出的错,先把数组各个元素通通赋为0吧,这样一来,有什么错误在运行时候,一看就能看出来。
38 for(int i=0;i
39 for(int j=0;j
40 {
41 a[i][j]=0;
42 }
46 //试了一下从1赋值,感觉很费事,还是从后往前推吧,最后一个数字是N*N
47 int last=N*N;
48 int n=N;
49 int i=n-1,j;//第一个循环要用到i(第54行),所以赋个初值
50 for(int k=0;k
51 {
}
成都达内科技IT培训中心,专注Java培训,C++培训,3G培训,android培训,嵌入式培训等高端IT培训,顶级师资授课,真实项目实战,零首付,低押金,名企高薪就业。
挖客还挖到了什么 · · · · · ·