函数那些题 — P1

简介: 函数那些题 — P1

1、 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输人

解法一:该题直接使用“试数法”来求解最大公约数和最小公倍数


最大公约数找出两数中的最小值,然后直接相模,当能够同时被两数整除时则为最大公约数。

最小公倍数找出两数中的最大值,然后直接进入死循环,直到找到一个数能够同时被两数整除时,则为最小公倍数

再将这两部分分别用两个函数实现封装,注意在main函数里要记得声明

GCD,LCM是最大公约数和最小公倍数的首字母缩写  


代码及运行结果如图:

解法二:利用辗转相除法”和公约数和公倍数定理解题

最小公倍数 = 两数之积 / 最大公约数

2、写一个判素数的函数

素数是一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做素数


该题可以使用概念直接判断法求解,不过不需要判断所有的数据,只需要判断数据的一半即可


为什么?


因为只要一个数,我们对它左边的一半随意找一个数能把这个数除尽,右边一定也可以


右边一半数相当于都是左边一半的二倍


我们把中位数前的一半数称为第一段,后一半称为第二段;我们仔细分析之后可以发现:


       第二段数均小于中位数的二倍,而能被除1外数字整除,这个除数最小是2,因此我们知道如果中位数前都没有满足除1外的除数能把这个数整除,那么我们后半段就不会再出现除数了。

3、写一个函数,使给定的一个3X3的二维整型数组转置,即行列互换

进行数组的行列互换,其关键在于数组互换的表达式ar[i] [j] = ar[j] [i];其次在循环的时候,内层循环不能到达最大列,需要根据此时是第几行的交换来决定循环的次数,否则有可能数组行列交换之后最后又交换回原来的形状了。

4、写一个函数,输人一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如输人1990,应输出“1 9 9 0”

对字符串进行遍历输出,每输出一个字符,后面就跟着输出一个空格,关键点在于如果输出的是最后一个字符,则不能再输出字符,所以要对是否是最后一个字符的输出进行判断。

5、用递归方法求n阶勒让德多项式的值,递归公式为

递归函数的设计,有一个点非常重要,那就是必须要有返回条件,,此题中的返回条件即为 n==0 和n==1时,因为当 n 为这两值时,程序直接返回相应的值,只有 n>=1 时,才进行递归运算。

N-S图如下:

后记:

●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教!

                                                              ——By 作者:天空の乌托邦

相关文章
|
6月前
|
存储 编译器 C++
13函数
13函数
24 0
|
6月前
|
存储 编译器 C++
|
6月前
|
算法 编译器 C语言
函数—C(下)
函数—C(下)
53 0
|
5月前
|
C++
<iomanip>库中setw(),setfill()等函数的使用
<iomanip>库中setw(),setfill()等函数的使用
120 0
|
6月前
|
前端开发 JavaScript
Less的函数的介绍
Less的函数的介绍
56 0
|
6月前
|
开发工具 Windows
GetMessage()函数使用时的注意
GetMessage()函数使用时的注意
79 0
|
11月前
|
算法 编译器
函数(2)
函数(2)
39 0
|
11月前
|
人工智能
函数练习
用菜单的形式分别选择百钱买百鸡,九九表,水仙花数。
46 0
|
11月前
|
存储 编译器
函数(下)
函数(下)
81 0
|
存储 编译器 C语言
C语言知识点之 函数
C语言知识点之 函数
55 0