最近以C#为例,学习了程序设计基础,其中涉及到一些数学思维,我们可以巧妙的将这些逻辑问题转换为代码,交给计算机运算。

现将经常会使用到的基础函数做一总结,供大家分享、自己备用。

1.判断一个数是否为奇数

定义:整数中,能被2整除的数是偶数,不能被2整除的数是奇数

思路点:n%2!=0则为奇数

        /// <summary>/// 判断一个整数是不是奇数/// </summary>/// <param name="n">要判断的整数</param>/// <returns>是否奇数</returns>static bool IsOdd(int n){//不能被2整除,则为奇数if (n % 2 != 0){return true;}//否则不为奇数else{return false;}}

2.判断一个数是否为质数

定义:在大于1的自然数中,除了1和它本身以外不再有其他因数,这样的数称为质数。

方法一:查找法

思路点:设置循环,i大于等于2且小于n,若存在n%i==0的数,则不是质数

        /// <summary>/// 判断一个整数是不是质数/// </summary>/// <param name="n">大于1的自然数</param>/// <returns>是否质数</returns>static bool IsPrime(int n){//在大于等于2到小于n的范围内,寻找是否存在能整除n的数for (int i = 2; i < n; i++){//如果存在能整除n的数,则返回falseif(n%i==0){return false;}}//循环结束,未找到能整除n的数,则返回truereturn true;}

方法二:计数法

思路点:设置循环,i大于等于2且小于n,若存在n%i==0的数,则进行计数;循环结束后,计数大于0,则不是质数

        /// <summary>/// 判断一个整数是不是质数/// </summary>/// <param name="n">大于1的自然数</param>/// <returns>是否质数</returns>static bool IsPrime(int n){//设置变量sum,用于保存能整数n的数的数量int sum = 0;//在大于等于2到小于n的范围内,寻找是否存在能整除n的数for (int i = 2; i < n; i++){//如果存在能整除n的数,则sum自增1if(n%i==0){sum++;}}//循环结束,如果sum大于0,则代表不是质数,返回false;否则是质数,返回trueif (sum > 0){return false;}else{return true;}}

3.判断一个数是否为自幂数

定义:一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153),3位数的3次幂数称为水仙花数。

思路点:a.将要判断的正整数转换为string类型,得到位数len;

b.将正整数%10得到个位,/10%10得到十位,/100%10得到百位,以此类推,直到/10^(len-1)%10得到最大位;

c.将各位数的len次幂相加,判断是否与正整数相等,相等则为自幂数。

        /// <summary>/// 判断一个数是否为水仙花数/// </summary>/// <param name="n">位数大于等于3的正整数</param>/// <returns>是否水仙花数</returns>static bool IsNarcissisticNumber(int n){//定义len,赋值为n的位数int len = (n.ToString()).Count();//定义power,赋值为10的(len-1)次幂int power = 1;for (int i = 1; i < len; i++){power *= 10;}//定义sum,赋值为各位数的len次幂之和int sum = 0;for (int j = 1; j <= power; j*=10){//定义multiple,赋值为各位数的len次幂int multiple = 1;for (int i = 1; i <=len; i++){multiple*=n / j % 10;}sum += multiple;}//如果sum等于n,则是水仙花数,返回turn;否则不是,返回falseif (n == sum){return true;}else{return false;}}

4.反序输出

定义:将需求从右到左输出在从左到右的输出端

思路点:将字符串看作是char的数组,设置循环,从最后一个元素开始输出,直到输出第一个元素

        /// <summary>/// 反序输出/// </summary>/// <param name="str">需要反序输出的字符串</param>static void Antitone(string str){for (int i = str.Length-1; i >= 0; i--){Console.Write(str[i]);}}

5.斐波拉契数列

定义:斐波纳契数列以如下被以递归的方法定义:F(0)=1,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)

思路点:函数调用自身进行运算

        /// <summary>/// 查找斐波拉契数列第n位的数/// </summary>/// <param name="str">位数</param>/// <return>斐波拉契数列第n位的数</return>>static int FibonacciSequence(int n){if (n == 1 || n == 2){return 1;}else{return FibonacciSequence(n - 1) + FibonacciSequence(n - 2);}}

6.阶乘

定义:一个正整数的阶乘,是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!

思路点:函数调用自身进行运算

        /// <summary>/// 计算阶乘/// </summary>/// <param name="str">正整数</param>/// <return>阶乘结果</return>>static int Factorial(int n){if (n == 1){return 1;}else{return n*Factorial(n - 1);}}

转载于:https://www.cnblogs.com/zhongjuan/p/C-sharp_function.html

程序设计中的数学思维函数总结(代码以C#为例)相关推荐

  1. Python程序设计语言基础05:函数和代码复用

    目录 1. 函数的定义与使用 1.1 函数的理解和定义 1.1.1 函数的理解 1.1.2 函数的定义 1.2 函数的使用及调用过程 1.3 函数的参数传递 1.3.1 无参数传递 1.3.2 可选参 ...

  2. python中组合数据类型、函数和代码复用的难点_Python电子教案5-2 函数和代码复用...

    <Python电子教案5-2 函数和代码复用>由会员分享,可在线阅读,更多相关<Python电子教案5-2 函数和代码复用(56页珍藏版)>请在人人文库网上搜索. 1.七段数码 ...

  3. 谈一谈|编程中的数学思维

    欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 数学思维: 在个人的理解中,大多数编程题都有数学的影子(离散数 ...

  4. 谈一谈编程中的数学思维

    ​ 数学思维 在个人的理解中,大多数编程题都有数学的影子(离散数学中的图.树归到数据结构),还有一些题目仅用数学方法就可以解出答案.下题<最大降水量>就属于其中. 问题描述 由于沙之国长年 ...

  5. Fluent UDF中调用Matlab矩阵运算函数(以二维插值为例)

    Fluent UDF中经常需要用到一些常见算法,例如插值.拟合.矩阵运算等等,这些在UDF中是没有现成函数实现的,理论上需要我们自己去写函数.另一方面我们又注意到这些运算恰恰是Matlab的强项,几乎 ...

  6. 深度学习中常见的LOSS函数及代码实现

    Introduction 训练深度学习模型地目的只有一个,尽可能的学习到训练数据的分布.像往常的考试一样,考试成绩会有一个分数作为评判标准,评价你对于知识点地掌握情况,以便后续针对性地去学习.深度学习 ...

  7. c++程序设计中多态与虚函数知识点

    一.前言 如上 二.内容 编写一个程序,定义抽象基类Shape,由它派生出5个派生类:Circle(圆形).Square(正方形).Rectangle(矩形).Trapezoid(梯形).Triang ...

  8. math java 计算_Java中的数学计算函数汇总

    Math类:  java.lang.Math类中包含基本的数字操作,如指数.对数.平方根和三角函数. java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(B ...

  9. random函数 c语言,C/C++ 中rand()和random()函数(示例代码)

    nt rand(void); 返回一个随机数0 ~ pow(2, sizeof(int))-1 long int random(void); 返回一个随机数0 ~ pow(2, sizeof(long ...

最新文章

  1. 使用二维高斯函数模糊图片
  2. AI不会很快取代作家——但未来可能比你想象的更近
  3. MySQL事务的提交
  4. .NET自定义获得JSON的方法(System.Runtime.Serialization.Json)
  5. 婚纱照嘴巴有点凸好p吗_丑拒80寸奢华大片挂床头,压箱底的婚纱照还能这样摆?...
  6. Angular之filter学习
  7. [转载]在ASP.NET中使用Microsoft Word文档
  8. 物体检测,用于检测红灯笼demo(含训练代码)
  9. MYSQL—— 启动MYSQL 57 报错“The service MYSQL57 failed the most recent........等”的问题解决方式!...
  10. Hadoop以及组件介绍
  11. OFD文件解析流程(转)
  12. FSEC大学生电动方程式赛车电气系统设计
  13. NPM_出现 ETIMEDOUT
  14. 火狐 全屏_如何禁用Firefox的全屏警告消息
  15. 台式机通过网线共享笔记本电脑无线网络
  16. Python简洁出入库系统(批量出入库)
  17. Hole_making基于特征加工
  18. matlab三角形面积,matlab中计算三角形面积?
  19. h0154.加勒比海盗船——最优装载问题 (20 分)
  20. 2021河南省ICPC省赛总结

热门文章

  1. mxnet系列 安装
  2. C\C++的转义字符
  3. 简哲,请让我的生活简单一点。——批《输入法破局研究——联盟推广》
  4. 百度地图API的使用教程以及案例
  5. java和以太坊交互_java类库web3j开发以太坊智能合约快速入门
  6. 我是真的傻,她被超市安保罚了100元,我居然给她50元
  7. USB接口类型的区别
  8. 买基金,是长期持有好,还是短线操作好?
  9. 分享一个最新思考的创业项目
  10. 产能过剩时代,为什么说“送比卖更赚钱”