程序虽小,智慧并存

程序虽小,智慧并存,第1张

概述在IT行业中,通常被人称为:码农,程序猿。在日常开发中,我们不能满足于代码的搬运,不能只会百度搜索,Copy和Paste。 概述

IT行业中,通常被人称为:码农,程序猿。在日常开发中,我们不能满足于代码的搬运,不能只会百度搜索,copyPaste。犹记春节假期,走亲访友,觥筹交错,席间有一位长辈问:你现在做什么工作呀?我很骄傲地说:我目前是系统架构师,主要负责系统的优化与重构。可是他却愣了很久,但当表妹在旁边补上一句“码农“时,长辈瞬间秒懂,笑呵呵的说道:不错不错。却留我受伤的心在风中凌乱。

为了避免成为码农,我们必须对编码保持热情,并持续学习;必须保持好奇心,乐于探求事物本质;必须对所做的工作及时总结,主动优化代码,让系统变得更加有机;必须主动尝试更好的开发方式、更先进的工具,来提升开发效率,并想办法避免重复性的工作;必须不断改进设计,将编程变成创造性的工作。

以下以一些简单的小例子,介绍C#基础内容,抛砖引玉,共同进步,如有不足之处,还请指正。

给定一个不超过5位数的正整数,判断是几位数,并逐行打印个位,十位,百位,千位,万位上的值

通过分析,此处主要有两个功能:

判断是几位数 打印每一个位上的值

以下有几种方案计算位数(孰优孰劣,欢迎点评):

1. 通过比较法进行判断,简单直接有效

 1 /// <summary> 2         /// 判断位数,直接比较 3         </summary> 4         <param name="num"></param> 5         static int CheckDigit1(int num) 6         { 7             int digit = 0; 8             if (num < 10) 9             {10                 digit = 111             }12             else 10013 14                 digit = 215 16             100017 18                 digit = 319 20             1000021 22                 digit = 423 24             10000025 26                 digit = 527 28             else29 30                 digit = -31 32             Console.Writeline(digit);33             return digit;34         }

2. 通过整除法进行判断

 判断位数:引入了不该有的计算int CheckDigit2(if (num / 10000 > 1000 > 100 > 10 > else {25                 digit = 26 29         }

3. 引入折半思想进行判断

 1   采用折半思想int CheckDigit3(if (num >= 10                                 {12                     digit =                 }14                 16                     digit = ; ;18                 19                     digit = 20 22             23                 24 25                     digit = 27                 28                     digit = 30 32             33         }

4. 通过转换为字符串,判断字符串的长度来确定位数

 通过字符串计算位数int CheckDigit4( num) { 6             string strNum = num.ToString();int digit = strNum.Length; 8  9             10         }

打印每一位上的数字,按照从低位到高位进行打印(通过相减的方式)

 打印每一位数字,从低到高 5         <param name="digit"></param> 6         voID PrintNumber(int num, digit) {int tmp = num;for (int i = 0; i < digit; i++) { 9                 int n = tmp / 10                 Console.Writeline(tmp - n * );11                 tmp = n;12 13         }

另一种方案:打印每一位上的数字,按照从低位到高位进行打印(通过求余的方式)

 1    打印每一位数字,从低到高voID PrintNumber2(11                 Console.Writeline(tmp % 12                 tmp =14         }

从高位到低位进行打印(For循环)

 1     从高到低打印voID PrintNumber3( digit) 7 10 11                 int n = tmp / (int)Math.Pow(10,digit - i -                 Console.Writeline(n);13                 tmp -= n * (14 15         }

另外一种方案:从高位到低位进行打印,采用while循环

 1    voID PrintNumber4( 2              3             int div = ( 4             while (tmp >  5                 int n = tmp / div; 7                 tmp -= n * 8                 div /= 10         }
打印一个边长为n的正方形

功能说明:主要是打印一个,长和宽个数相同的*号的形状。

通过分析,主要有两点:

第一行与最后一行,第一列与最后一列,都是*号,其他都是空格;最后一列需要换行
 打印一个边长为n的正方形<param name="n"></param>voID PrintSquare1( n) {0; i < n; i++ 7                 int j = 0; j < n; j++ 8                     string info = string.Empty; 9                     if (i == 0 || i == n - 1 || j == 0 || j == n -                     {11                         info = "*"                    }13                     14                         info = " 16                     if (j == n - 18                         Console.Writeline(info);20                                             Console.Write(info);22 25         }
求100以内的奇数和

定义:不能被2整除的整数叫奇数,也叫单数,13579、……。

通过分析发现:只要对2求余,余数大于0,则为奇数,如下所示:

 求100以内的奇数的和 4         voID GetoddSum() { 5             int total = 0; i < 100; i++if (i % 2 !=  8                     total += i;            Console.Writeline(total);12         }

另外一种方案:奇数与偶数是交替出现的,如第一个数是奇数,则加2还是奇数,如下所示:

 GetoddSum2() 5 1; i < 100; i +=  9                 total +=12         }
打印九九乘法表

正向九九乘法表,通过分析发现,第一个乘数(j)小于等于第二个乘数(i),如下所示:

 打印九九乘法表 PrintMultiplicationtable() {9; i++ 6                 0; j < 9; j++if (i > j)10                         Console.Write({0}*{1}={2} ",j + 1,i + 1) * (j + ));12                     if (i == j) {13                         Console.Writeline(16 17         }

另外一种方案:倒打九九乘法表,通过分析发现,第一个乘数(j)大于等于第二个乘数(i),如下所示:

 倒打九九乘法表 PrintMultiplicationtable2() 8                 10                     if (i < 9 - j - 12                         Console.Write(9 - i,(9 - i) * (j + 14                     16                         Console.Writeline(20         }
斐波那契数列

定义:斐波那契数列,又称黄金分割数列,指的是这样一个数列:0112358132134、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0F1=1Fn=F(n-1)+F(n-2)n2nN*)。

通过分析发现:

0项是0,第1项是第一个1这个数列从第3项开始,每一项都等于前两项之和。
 打印斐波那契数列,10以内 PrintFibonacci() {int cur = int pre1 = int pre2 = 30; i++11                     pre2 = 12                     pre1 = 13                     cur = 15                 17                     pre2 = 18                     pre1 = 19                     cur = 21                 22                     pre2 = pre1;23                     pre1 = 24                     cur = 26                 27                     pre2 =28                     pre1 = cur;29                     cur = pre1 + pre2;                Console.Writeline(cur);33         }
备注

我们永远不会忘记写的第一个程序--HelloWorld!”因为那承载着程序员最初的梦想改变世界。

虽然我们不一定能成为大师,但从不甘心做一个码农,程序员不是码农,码农也不是真正的程序员。

我们可以自谦,可以自嘲,但不能自我定位于码农,止步于码农。

总结

以上是内存溢出为你收集整理的程序虽小,智慧并存全部内容,希望文章能够帮你解决程序虽小,智慧并存所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1213801.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存