C语言 怎么确定一段数字中某个数字有几个
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 怎么确定一段数字中某个数字有几个相关的知识,希望对你有一定的参考价值。
这个很简单的。#include "stdio.h"
int main()
int a[20]=9,5,7,6,8,1,2,7,9,2,4,6,8,2,7,9,1,0,5,4;
int sum=0;
int N;
scanf("%d",&N);//输入你要查询个数的数字
for(int i=0;i<20;i++)
if(a[i]==N)
sum++;
printf("%d\n",sum);
return 0;
参考技术A 可以用数组来存储,一次就可以分析所有数字的个数:
供您参考:
#include<stdio.h>
#include<string.h>
int main()
int digit[10]=0;
char* d ="123414058140657790834";/*需要分析的数字串*/
int index,p;
for(index=0;index<strlen(d);index++)
p = d[index] - '0';
digit[p]++;
for(index=0;index<10;index++)
printf("%d:%d\n",index,digit[index]);
return 0;
参考技术B int count(unsigned int b,unsigned int num)
int c=0;
while(num>0)
if(num%10==b) c++;
num=num/10;
return c;
调用这个函数就可以得到有几个数字了 参考技术C 注意输入值的范围!
#include "stdio.h"
#define N 10
main()
int a[N];
int i,j;
int Find_search,num=0;
long number;
printf("Please input number:\n");
scanf("%d",&number);
for(i=0;number>0;number/=10)
a[i]=number%10;
i++;
printf("Please input Find_search:\n");
scanf("%d",&Find_search);
for(j=0;j<i;j++)
if(a[j]==Find_search)
num++;
printf("The number of digits:%d\n",num);
如果对你有所帮助,请记得采纳最佳答案,谢谢!本回答被提问者采纳
python如何统计list有几个连续的数字
比如mylist = [1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,11,0]
怎么写才可以知道1最多连续出现4次。 0最多出现4次呢?
result =
tmp = None
for i in mylist:
if not result.has_key(i):
#新出现的值为1
result[i] = 'tmpcount':1,'maxcount':1
else:
if i == tmp :
#同上一次相同,tmpcount数字加一,同时更新maxcount
result[tmp]['tmpcount'] = result[tmp]['tmpcount'] + 1
if result[tmp]['maxcount'] < result[tmp]['tmpcount']:
result[tmp]['maxcount'] = result[tmp]['tmpcount']
else:
#如果不同,上次数字的tmpcount归零,这次的数字的tmpcount归一
result[i]['tmpcount'] = 1
result[tmp]['tmpcount'] = 0
tmp = i
for j,k in result.items():
print '数字' + str(j) + '出现的最大连续次数为' + str(k['maxcount'])
试试这个,有点麻烦但应该可以解决这个问题
先使用itertools.groupby,对每个连续的数字进行分组
import itertoolsnum_times = [(k, len(list(v))) for k, v in itertools.groupby(mylist)]
这样得到的num_times是每个数字连续出现的次数
num_times = [(1, 2), (0, 1), (1, 3),
(0, 4), (1, 4), (0, 1),
(1, 1), (0, 1), (11, 1),
(0, 1)]
然后对每个数字,统计出现的最大次数,这一步比较简单就自己想想吧
追问有简单的方法吗 不要import的
追答越要简单越应该用标准库啊
参考技术B mylist = [1,1,0,1,1,1,0,0,0,0,1,1,1,1,0,1,0,1,1,0]mystr=''.join(map(str,mylist)) #先转化为字符串
for i in set(mystr):
print(i,max(list(map(lambda x:len(x),[j for j in mystr.split(i)])))) #使用map跟lambda函数对分割后的列表各元素求长度
缺陷是只能处理列表中只有两种数字的
后来改了一下 先可以把列表变为只有0跟1的数据 然后再按上面的思路来
mylist = [1,1,0,1,1,2,2,1,0,0,0,0,1,1,2,2,2,1,1,0,1,0,1,2,2,1,0]for j in set(mylist):
list1=[1 if i==j else 0 for i in mylist ]
mystr=''.join(map(str,list1))
print(j,max(list(map(lambda x:len(x),[j for j in mystr.split('0')]))))
以上是关于C语言 怎么确定一段数字中某个数字有几个的主要内容,如果未能解决你的问题,请参考以下文章