样例都过不了,只能输出1,求助
查看原帖
样例都过不了,只能输出1,求助
1113551
wzy20110830楼主2024/2/25 18:49

代码有点长,麻烦大佬耐心看完

#include <bits/stdc++.h>
using namespace std;
int ws(int n)
{
	int a = 0;
	while(n != 0)
	{
		n /= 10;
		a ++;
	}
	return a;
}
int get1(int n)
{
	return n % 10;
}
int get2(int n)
{
	return n / 10 % 10;
}
int get3(int n)
{
	return n / 100 % 10;
}
int get4(int n)
{
	return n / 1000 % 10;
}
int get5(int n)
{
	return n / 10000 % 10;
}
int get6(int n)
{
	return n / 100000 % 10;
}
int get7(int n)
{
	return n / 1000000 % 10;
}
int main()
{
	int n, x, cnt = 0;
	cin >> n >> x;
	for(int i = 1 ; i <= n ; i ++)
	{
		if(ws(i) == 1)
			if(i == x)	cnt ++;
		else if(ws(i) == 2)
		{
			if(get1(i) == x)	cnt ++;
			if(get2(i) == x)	cnt ++;
		}
		else if(ws(i) == 3)
		{
			if(get1(i) == x)	cnt ++;
			if(get2(i) == x)	cnt ++;
			if(get3(i) == x)	cnt ++;
		}
		else if(ws(i) == 4)
		{
			if(get1(i) == x)	cnt ++;
			if(get2(i) == x)	cnt ++;
			if(get3(i) == x)	cnt ++;
			if(get4(i) == x)	cnt ++;
		}
		else if(ws(i) == 4)
		{
			if(get1(i) == x)	cnt ++;
			if(get2(i) == x)	cnt ++;
			if(get3(i) == x)	cnt ++;
			if(get4(i) == x)	cnt ++;
		}
		else if(ws(i) == 5)
		{
			if(get1(i) == x)	cnt ++;
			if(get2(i) == x)	cnt ++;
			if(get3(i) == x)	cnt ++;
			if(get4(i) == x)	cnt ++;
			if(get5(i) == x)	cnt ++;
		}
		else if(ws(i) == 6)
		{
			if(get1(i) == x)	cnt ++;
			if(get2(i) == x)	cnt ++;
			if(get3(i) == x)	cnt ++;
			if(get4(i) == x)	cnt ++;
			if(get5(i) == x)	cnt ++;
			if(get6(i) == x)	cnt ++;
		}
		else if(ws(i) == 7)
		{
			if(get1(i) == x)	cnt ++;
			if(get2(i) == x)	cnt ++;
			if(get3(i) == x)	cnt ++;
			if(get4(i) == x)	cnt ++;
			if(get5(i) == x)	cnt ++;
			if(get6(i) == x)	cnt ++;
			if(get7(i) == x)	cnt ++;
		}
	}
	cout << cnt;
	return 0;
}
2024/2/25 18:49
加载中...