描述
输入一个正整数 repeat (0<repeat<10),做repeat 次下列运算:
读入 1 个整数n(n<10^100),统计并输出n中2 的个数。
输入
见sample
输出
见sample
输入样例 1
3
-21902
2
345543
输出样例 1
count=2
count=1
count=0
#include<bits/stdc++.h>
using namespace std;
int main()
{
int repeat,k=0;
string n;//n的范围很大,不可以使用long long
scanf("%d",&repeat);
getchar();
while(repeat--)
{
while(getline(cin,n))
{
for(int i=0; n[i]!='\0'; i++)
{
if(n[i]=='2')
{
k++;
}
}
printf("count=%d\n",k);
k=0;
}
}
return 0;
}
这种方法仅仅只适用余与n较小时,不适用于此题
#include <stdio.h>
#include <stdlib.h>
int CountDight(int n)
{
int count=0,i;
if(n<0)
{
n=-n;
}
while(n>10)
{
i=n%10;
if(i==2)
{
count++;
}
n=n/10;
}
if(n==2)
{
count++;
}
return count;
}
int main()
{
int repeat,n;
scanf("%d",&repeat);
while(repeat--)
{
scanf("%d",&n);
printf("count=%d\n",CountDight(n));
}
return 0;
}