为什么用bool有问题
查看原帖
为什么用bool有问题
1288331
hjb13357896690楼主2024/9/1 13:42

问题出在样例的22,它的个位十位和都是2,但我的代码跑出来却是少这一个(应该少的是十位)。

#include <bits/stdc++.h>
#define ll long long
using namespace std;
bool k(int n)
{
	int ans=0;
	int t;
	while(n>0)//如果不够砍,就停止 
	{
		t=n%10;//取最后一位 
		if(t==2)//判断 
		{
			ans++;
		}
		n/=10;//砍掉 
	}
	return ans;//返回i中2的总个数 
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	int a,b,cnt=0;
	cin>>a>>b;
	for(int i=a;i<=b;i++)
	{
		cnt+=k(i);//每个数中2的个数加起来 
	}
	cout<<cnt;//输出总和 
    return 0;
}

写到这时我才改对。不过想问问各位大佬为什么不能用bool?

#include <bits/stdc++.h>
#define ll long long
using namespace std;
int k(int n)
{
	int ans=0;
	int t;
	while(n>0)//如果不够砍,就停止 
	{
		t=n%10;//取最后一位 
		if(t==2)//判断 
		{
			ans++;
		}
		n/=10;//砍掉 
	}
	return ans;//返回i中2的总个数 
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	int a,b,cnt=0;
	cin>>a>>b;
	for(int i=a;i<=b;i++)
	{
		cnt+=k(i);//每个数中2的个数加起来 
	}
	cout<<cnt;//输出总和 
    return 0;
}

这样就对了

2024/9/1 13:42
加载中...