int Fact(int n) {
问题1:求n的阶乘,给n可以赋任何正整数。然后循环就可以得到n的阶乘。这里n=4。
思想:4的阶乘等于4*3*2*1可以看到每次减小1然后相乘,他是一个重复的事情所以使用循环。并且4*3*2*1等于4*3*2,所以循环截止的条件当n>=2就可以当做截止条件而不用再到1.设result初始值等于1,用来和n相乘,并且存放n每次乘完的值方便与n的下一个值想成并保存。最后输出。
问题2:n的阶乘的和 这里n=4.
思想:先编写一个函数 int Fact(int n) 他的作用就是求一个数的阶乘。
main 函数中采用循环把Fact中每一次计算出来的一个数的乘积加在一起。
4的乘积之和 = 4的乘积+ 3的乘积 +2的乘积+1的乘积
33 = 24 + 6+ 2+ 1;
问题3:数组中查找特定的值
思想:在一个升序的数组中查找特定的数,编写一个函数用来查找数组中的值采用二分法,设start为数组第一个元素的序号 end为数组最后一个元素的序号,则(start+end)/2 就是中间值mid.如果特定值大于mid 则说明特定值在数组后面一半,前面的一半直接就舍弃,然后再取中间值,再判断。重复这个过程直到找到特定值。start一直往前,end一直往后移动。最终会相遇。找到特定值。
问题4:数组字符串的覆盖问题
思想:这样写的char str[] = "hello bit ...";最后一位是/0 ,他有14个字符。 int num = sizeof(str) / sizeof(str[0]);//求的是数组的元祖个数有14个,而它的 长度是13.所以这里要-2。本来int end要-1,但是这里还有一个影藏的‘/0’,所以int end 要-2.从两侧往中间让str1字符串数组覆盖str字符串数组。Sleep数位了让程序执行慢一点,方便观察。