短学期题解——kk数圈圈

Description
儿童节到啦,你是不是儿童呢,来验证一下吧!

8888=8

5693=2

1012=1

4444=0

0000=4

你能不能发现这些式子的特点呢?没错,就是计算数字里面的圈圈!

KK发现这个特点后很开心,觉得自己能很厉害,于是老薛就问他“你知道一个一百位的数字里有多少圈圈吗”。KK想了很久发现自己真的不会,所以他来求助你,你知道该怎么做吗?

Input
第一行,n,代表下面的数字有n位(n<=1e6)

一个数字,n位。

Output
圈圈的个数

Samples
input
4
8888
output
8

input
4
0694
output
3

思路


1e6位是10^6位,而非大小为1000000(1000000只有7位),且要读前置0(样例2),所以要用字符串读入,然后遍历。假设1e6位全为8,圈圈的个数最大值为2e6,用int类型保存即可。注意从第一位从0开始。

#include <stdio.h> 
int main() 
{   
  int sum=0,n,i;
  char in[1000001];
  scanf("%d",&n);
  scanf("%s",in);//读入字符串直接写数组名,不用写&
  for(i=0;i<n;i++){//字符串类型从0开始,第n位是'\0'
  	if(in[i]=='0'||in[i]=='6'||in[i]=='9')
  		sum++;
  	else if(in[i]=='8')
  		sum+=2;
  }
  printf("%d",sum);
  return 0;
}

你可能感兴趣的:(other)