大师匈觉得C语言博大精深,一个合格的程序员不仅要有严密的逻辑思维,精通MCU啊,操作系统啊,各种行业相关的听起来很高大上的东西,而且要有数学思维,敏锐的嗅觉出色的debug能力,混迹几年,发现一些很基础的数学思维竟然也开始僵化了;如不等式,如排列组合的各种灵活应用,可能平时用的少,但是有一些空闲,多练习一些,让自己多思考一下,不至于让自己的脑袋逐渐僵化。

第一题:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

先不用程序实现,直接去算,有多少种,如果你还记得高中的排列组合,那么结果很显然就是A(3,4),就是432 = 24种。
看到这里的同学都有没有想到这个呢。
那么如果再加一个条件,24个组合里面不相同的组合有多少种,这里的不相同指的是乱序的不同。比如123和321它是一个组合。
用排列组合公式计算就是4种,A(3,4)/A(3,3) = 4;

上面是数学的算法,计算有多少种;
那么用C语言程序去排列它们,就非常简单了;代码如下:

#include"stdio.h"
void main()
{int arry[4] = {1,2,3,4};int i = 0,j = 0,k = 0;int number = 0;for(i = 0;i < 4;i++){  for(j = 0;j < 4;j++){ for(k = 0;k < 4;k++){if((i != j)&&(i != k)&&(j != k)) {printf(" %d ",arry[i]);printf(" %d ",arry[j]);printf(" %d\n",arry[k]);number++;}}   }}printf("number = %d\n",number);
} 在这里插入代码片

第二题:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

第一眼看过去。大家必然会在脑海里形成俩个公式:
1、x+100 = nn;
2、x+100+168 = m
m;
接下来我们要怎么算呢?很显然这有三个未知数,但只有俩个方程式,必然不可能直接求出答案;
这里要利用数学的不等式思想,没有不等式创造不等式;
那么mm - nn = 168;m和n的相差为1,它俩的差值最小,如果差值为1的m,n的平方相减刚好大于168,那么就是m和n的上限,我们就可以去穷举了;
我们也可以用类似的办法知道它的下限,就是mm+nn这俩个肯定大于168的,那么n最小为1,我们可以知道m的最小值是13;这样又进一步缩小了范围;
下面就是代码了:不过这段代码没有去做下限。。。

int main()
{int m,n,i,j,x;for(m = 1,n = 0;m*m- n*n < 169;m++,n++);printf("m = %d\n",i = m);printf("n = %d\n",j = n);for(m=2;m<i+1;m++){for(n=1;n<j+1;n++){if((m*m - n*n) == 168){printf("x = %d\n",n*n - 100);}}}}

我这里在还有一个解题方案比上面这个更好一些,我把代码贴出来:

int main()
{int i,j,m,n,x,q;for(i=2;i<85;i+=2)//由于i在分子部分,所以不能为0.不然直接死机 {if(168%i == 0){j = 168/i;if(i > j && (i+j) %2 == 0 && (i-j)%2 == 0){m = (i + j)/2;n = (i - j)/2;q = m*m - n*n;if(q == 168){x = n*n - 100;printf("x = %d\n",x);}}}}
}

延续第一种解法:
1、x+100 = nn;
2、x+100+168 = m
m;
3、mm - nn = 168 -> (m+n)(m-n) = 168 ,我们设i = (m+n),j = (m-n);那么i和j 至少有一个为偶数;
4、然后再进行推导,m = (i+j)/2,n = (i-j)/2,所以(i+j)或者(i-j)必然为偶数,所以i和j要么都是偶数要么都是奇数,我们根据第三步得知,至少有一个偶数,所以i和j都是偶数;
4、i
j = 168,如果j = 2,那么i 肯定是最大的;所以 i 的最大值就是84;
5、我们就从2开始穷举i,知道i = 2,那么必然能求出j,m,n,x,我们就知道 找到我们想要的值;

OVER 。。。。

C语言 基础的数学思维题相关推荐

  1. php编程数学思维题,小学一年级数学思维训练100题打印版.doc

    小学一年级数学思维训练100题53297 PAGE PAGE 1 小学一年级思维训练100题 1.哥哥4个HYPERLINK "/click/click.php?r=/article_htm ...

  2. C语言数理逻辑题目,数学逻辑推理题整理,看看你能答对多少

    年龄的秘密 A.B.C三人的年龄一直是一个秘密.将A的年龄数字的位置对调一下,就是B的年龄;C的年龄段两倍是A与B两个年龄的差数;而B的年龄是C的10倍. 请问:A.B.C三人的年龄各是多少? 失误的 ...

  3. php编程数学思维题,一年级数学:思维训练题(13套),打印每周一练,益智提升专用...

    一年级数学:思维训练题(13套),打印每周一练,益智提升专用! 众所周知,思维对于数学的学习是最为关键的,尤其是在小学阶段,需要趁早的培养孩子的逻辑思维能力.思维不是凭空想象,而是要依据手里的题目,能 ...

  4. 灰暗而空虚的景色β(数学思维题)

    链接真的被这题坑惨了..哎 题目: "雪啊." "雪是红色的." 像坏掉的复读机一样,梓川咲太只能把闪烁的思绪断断续续的说出来. "这,是梦吧.&qu ...

  5. python语言基础与应用慕课课堂测试_中国大学MOOC(慕课)_Python语言基础与应用_题库2020...

    必须把煤拉空,中国燃煤为防冬季沟内结冻止煤,部水大时煤质含外分较. 动机的连输煤和电机械接,大学按联得到的结来找满意果(就能直接轴器中心. 慕课斗轮堆取定是的(可逆悬臂输送机的胶带机一.1年碳灭每隔手 ...

  6. 木棒围正方形c语言,三年级数学思维训练 (1)

    思维训练一 1.★×2+7-20=25 ★=() (54-★)×9=72 ★=() 2.A乘4,再加上20,然后除以5,等于8,A是(). 3.篮子里有一些苹果,5个5个的数多1个,7个7个的数也多一 ...

  7. 51Nod 1003 阶乘后面0的数量(数学,思维题)

    1003 阶乘后面0的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5         难度:1级算法题 n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 720 ...

  8. HDU4357(数学思维题)

    题目:String change 把26个字母看成0~25对应的数字,当数慢慢增大时就对26取模,则字符串有一个总和s1,要使其变为末状态的总和s2;那么每交换一次s1要加2,故,s1+s2必须为偶数 ...

  9. codeforces The Artful Expedient(数学思维题)

    题目链接: http://codeforces.com/contest/869/problem/A 题目大意: 给你一个n,分别输入两组n个数字,如果这两组数字两两异或的结果与两组数字中的某一个数字相 ...

  10. 【Unity面试】 C#语言基础核心 | 面试真题 | 全面总结 | 建议收藏

    你知道的越多,你不知道的越多

最新文章

  1. https://blog.csdn.net/nameofcsdn/article/details/53164652
  2. asp.net)js 在当前日期上加一天和系统发布
  3. thrift使用小记
  4. c++中enum 如何使用(转)
  5. 华为云专家向宇:工欲善其事必先利其器,才能做数据的“管家”
  6. Redis之缓存设计
  7. 了解华为HCIP认证
  8. 华硕win10键盘失灵_win10键盘失灵错乱的几种解决方法【图文】
  9. PUN☀️二、局域网的搭建
  10. 专业录音:Audio Hijack for Mac
  11. 踩坑系列《十一》完美解决阿里云vod视频点播无法播放音频和视频点播控制台里的媒资库里面的视频无法播放
  12. div绑定onblur事件
  13. 解决git push报错:The requested URL returned error: 403
  14. 中国北斗简单原理随笔
  15. 为何谷歌围棋AI AlphaGo可能会把李世石击溃
  16. k均值聚类算法考试例题_k means聚类算法实例
  17. 软考高项之相关公式笔记
  18. 【力扣周赛】第346场周赛
  19. 正则表达式-连续多位相同字符判断的正则表达式
  20. 西门子S7-1500PLC与西门子V90 PN伺服通讯控制项 西门子S7-1500PLC与西门子V90 PN伺服通讯控制项目程序项目

热门文章

  1. xx大学云数据中心建设方案
  2. Gliffy 一款很不错的在线作图工具[可代替visio]
  3. UAT测试后上线出现问题的引起的思考
  4. mysql安装方法及使用
  5. 双十一报告:服饰企业借助团队管理工具飞项高效协作
  6. 解决putty自动断开问题
  7. UTF-8 without BOM
  8. 武汉好地科技为您解析CMMI3和CMMI5的区别
  9. 联想 缺少计算机所需的介质驱动程序,联想笔记本缺少驱动应该怎么办
  10. 第二章 人工智能专题之Python进阶 - Matplotlib库