请教大神如何用C编程实现求只有0和1的数组num[h]中n个位置连续相邻的1的个数m;
答案:1 悬赏:80 手机版
解决时间 2021-04-19 23:03
- 提问者网友:饥饿走向夜
- 2021-04-19 02:54
请教大神如何用C编程实现求只有0和1的数组num[h]中n个位置连续相邻的1的个数m;
最佳答案
- 五星知识达人网友:白昼之月
- 2021-04-19 03:21
一个一个数过去呗
#include
size_t f(size_t n, const unsigned *num, size_t h)
{
if (n == 0) return 0; //自行处理n=0的情况
size_t count = 0; //记录目前所找到的n个连续相邻的1的个数
size_t consecutive1 = 0; //记录目前1已经连续到第几个
for (size_t i = 0; i != h; ++i) {
if (num[i] == 1) ++consecutive1; //连续的1又多了一个
else {
if (consecutive1 == n) ++count; //恰好n个1相邻
consecutive1 = 0; //为下一组1的计数做准备
}
}
if (consecutive1 == n) ++count; //num最后一位可能是1
return count;
}
#include
size_t f(size_t n, const unsigned *num, size_t h)
{
if (n == 0) return 0; //自行处理n=0的情况
size_t count = 0; //记录目前所找到的n个连续相邻的1的个数
size_t consecutive1 = 0; //记录目前1已经连续到第几个
for (size_t i = 0; i != h; ++i) {
if (num[i] == 1) ++consecutive1; //连续的1又多了一个
else {
if (consecutive1 == n) ++count; //恰好n个1相邻
consecutive1 = 0; //为下一组1的计数做准备
}
}
if (consecutive1 == n) ++count; //num最后一位可能是1
return count;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯