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

poj 3331 The Idiot of the Year Contest!

編輯:C++入門知識

poj 3331 The Idiot of the Year Contest!


 

The Idiot of the Year Contest! Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 3744   Accepted: 1952

 

Description

There is just one basic rule in the Idiot of the Year Contest (IYC)! The contestant picks a random digit between 0 and 9, computes the factorial of the day of the year he/she is born, and counts the how many times the digit picked appears in the factorial. The contestant with highest count is the Idiot of the Year! For example, if you are born on 5th of Mordad which is the 129th day of the year, and you pick the digit 6, your score will be the number of times the digit 6 appears in 129! (that is 1 × 2 × 3 × ... × 129).

The chief judge of IYC wants you to write a program to get an integer which is the day of the year a contestant is born on and a digit and report the number of times the digit appears in the factorial of the first number.

Input

The first line of the input contains a single integer T which is the number of test cases, followed by T lines each containing the data for a test case having two numbers. The first number is the day of the year a contestant is born and the second one is the digit he/she has picked.

Output

The output contains T lines, each having one integer which is the number of times the digit appears in the factorial of the first number.

Sample Input

2
5 2
7 0

Sample Output

1
2 

題意:求n!中含有x的數量;

 

#include 
#include 
using namespace std;
int a[1005];
void mul(int n){
	int left=0;
	for (int i=0;i<1000;i++){
		a[i]=left+a[i]*n;
		left=a[i]/10;
		a[i]%=10;
	}
}
int main(){
	int t,n,x;
	cin>>t;
	while(t--){
		cin>>n>>x;
		memset(a,0,sizeof(a));
		a[0]=1;
		for (int i=2;i<=n;i++){
			mul(i);
		}
		int k=1000;
		
		for (;k>=0;--k){
			if (a[k])
				break;
		}

		int count=0;
		for (int i=0;i<=k;i++){
			if (a[i]==x)
				count++;
		}
		cout<

 

 

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