比赛 20150711暑期B班 评测结果 AAWWWWAWWW
题目名称 计数问题 最终得分 30
用户昵称 サイタマ 运行时间 0.005 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2015-07-11 10:28:20
显示代码纯文本
#include<fstream>
using namespace std;
int main()
{
	ifstream fin("count2013.in");
	ofstream fout("count2013.out");
	int n,x,num;
	bool ans=false;
	fin>>n>>x;
	if(x==0)num=0;
	if(x!=0)num=1;
	if(n%10==n)
	{
		ans=true;
		fout<<num<<endl;
	}
	if(n%100==n&&ans==false)
	{
		ans=true;
		for(int a=10;a<=n;a++)
		{
			if(a%10==x)num++;
			if(a/10==x)num++;
		}
		fout<<num<<endl;
	}
	if(n%1000==n&&ans==false)
	{
		ans=true;
		for(int a=10;a<=99;a++)
		{
			if(a%10==x)num++;
			if(a/10==x)num++;
		}
		for(int a=100;a<=n;a++)
		{
			if(a%10==x)num++;
			if(a/100==x)num++;
			if(a/10%10==x)num++;
		}
		fout<<num<<endl;
	}
	if(n%10000==n&&ans==false)
	{
		ans=true;
		for(int a=10;a<=99;a++)
		{
			if(a%10==x)num++;
			if(a/10==x)num++;
		}
		for(int a=100;a<=999;a++)
		{
			if(a%10==x)num++;
			if(a/100==x)num++;
			if(a/10%10==x)num++;
		}
		for(int a=1000;a<=n;a++)
		{
			if(a%10==x)num++;
			if(a/1000==x)num++;
			if(a/100%10==x)num++;
			if(a/10%10==x)num++;
		}
	}
	if(n%100000==n&&ans==false)
	{
		ans=true;
		for(int a=10;a<=99;a++)
		{
			if(a%10==x)num++;
			if(a/10==x)num++;
		}
		for(int a=100;a<=999;a++)
		{
			if(a%10==x)num++;
			if(a/100==x)num++;
			if(a/10%10==x)num++;
		}
		for(int a=1000;a<=9999;a++)
		{
			if(a%10==x)num++;
			if(a/1000==x)num++;
			if(a/100%10==x)num++;
			if(a/10%10==x)num++;
		}
		for(int a=10000;a<=n;a++)
		{
			if(a%10==x)num++;
			if(a/1000%10==x)num++;
			if(a/100%10==x)num++;
			if(a/10%10==x)num++;
			if(a%10==x)num++;
		}
	}
	if(n%1000000==n&&ans==false)
	{
		ans=true;
		for(int a=10;a<=99;a++)
		{
			if(a%10==x)num++;
			if(a/10==x)num++;
		}
		for(int a=100;a<=999;a++)
		{
			if(a%10==x)num++;
			if(a/100==x)num++;
			if(a/10%10==x)num++;
			
		}
		for(int a=1000;a<=9999;a++)
		{
			if(a%10==x)num++;
			if(a/1000==x)num++;
			if(a/100%10==x)num++;
			if(a/10%10==x)num++;
			
		}
		for(int a=10000;a<=99999;a++)
		{
			if(a%10==x)num++;
			if(a/1000%10==x)num++;
			if(a/100%10==x)num++;
			if(a/10%10==x)num++;
			if(a%10==x)num++;
		}
		for(int a=100000;a<=n;a++)
		{
			if(a/100000==x)num++;
			if(a/10000%10==x)num++;
			if(a/1000%10==x)num++;
			if(a/100%10==x)num++;
			if(a/10%10==x)num++;
			if(a%10==x)num++;
		}
	}
	if(ans==false)
	{
		for(int a=10;a<=99;a++)
		{
			if(a%10==x)num++;
			if(a/10==x)num++;
		}
		for(int a=100;a<=999;a++)
		{
			if(a%10==x)num++;
			if(a/100==x)num++;
			if(a/10%10==x)num++;
			
		}
		for(int a=1000;a<=9999;a++)
		{
			if(a%10==x)num++;
			if(a/1000==x)num++;
			if(a/100%10==x)num++;
			if(a/10%10==x)num++;
			
		}
		for(int a=10000;a<=99999;a++)
		{
			if(a%10==x)num++;
			if(a/1000%10==x)num++;
			if(a/100%10==x)num++;
			if(a/10%10==x)num++;
			if(a%10==x)num++;
		}
		for(int a=100000;a<=999999;a++)
		{
			if(a/100000==x)num++;
			if(a/10000%10==x)num++;
			if(a/1000%10==x)num++;
			if(a/100%10==x)num++;
			if(a/10%10==x)num++;
			if(a%10==x)num++;
		}
		if(x==1)num++;
		if(x==0)num=num+6;
	}
	fin.close();
	fout.close();
	return 0;
}