四个问题:n的阶乘,n的阶乘之和,数组中查找特定值,数组字符串的覆盖。

本文介绍了四个计算机算法问题:1) 使用循环计算n的阶乘;2) 计算n的阶乘之和;3) 在升序数组中利用二分查找法寻找特定值;4) 解决数组字符串覆盖的问题。通过示例和解释,详细阐述了每个问题的解决思路和关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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数位了让程序执行慢一点,方便观察。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值