程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> nyoj-關於521

nyoj-關於521

編輯:C++入門知識

nyoj-關於521


關於521

時間限制:1000 ms | 內存限制:65535 KB 難度:2
描述

Acm隊的流年對數學的研究不是很透徹,但是固執的他還是想一頭扎進去。

浏覽網頁的流年忽然看到了網上有人用玫瑰花瓣拼成了521三個數字,頓時覺得好浪漫,因為每個男生都會不經意的成為浪漫的制造者。此後,流年走到哪裡都能看到5、2、1三個數字,他怒了,現在他想知道在連續的數中有多少數全部包含了這三個數字。例如12356就算一個,而5111就不算。特別的,如果他看到了521三個數連續出現,會特別的憤怒。例如35210。

輸入
多組測試數據:
一行給定兩個數a,b(0 輸出
一行顯示他想要知道的數有幾個及顯示有多少個數字令他特別的憤怒。用空格隔開。
樣例輸入
200 500
300 900
1 600
樣例輸出
Case 1:2 0
Case 2:2 1
Case 3:6 1


#include
struct data
{
	int x,y;
}ss[1000000];
void f()
{
    int n,m,i,t,p5,p0,p2,temp;
	n=m=0;
	for(i=1;i<1000000;++i)
	{
		temp=p0=p2=p5=0;
		t=i;
		while(t)
		{
			if(t%10==5)
			p5=1;
			else if(t%10==1)
			p0=1;
			else if(t%10==2)
			p2=1;
			if(p5&&p0&&p2)
			{
				temp=1;
				m++;
				break;
			}
			t/=10;
		}
		if(temp)
		{
			t=i;
			while(t)
			{
				if(t%1000==521)
				{
					n++;
					break;
				}
				t/=10;
			}
		}
		ss[i].x+=m,ss[i].y+=n;
	}
}

int main()
{
	f();
	int a,b,cs=0;
	while(~scanf("%d%d",&a,&b))
	{
		printf("Case %d:%d %d\n",++cs,ss[b].x-ss[a-1].x,ss[b].y-ss[a-1].y);
	}
	return 0;
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved