2012藍橋C語言B組√

  1. 微生物增殖
    假設有兩種微生物 X 和 Y

    X出生後每隔3分鐘分裂一次(數目加倍),Y出生後每隔2分鐘分裂一次(數目加倍)。

    一個新出生的X,半分鐘之後吃掉1個Y,並且,從此開始,每隔1分鐘吃1個Y。

    現在已知有新出生的 X=10, Y=89,求60分鐘後Y的數目。

    如果X=10,Y=90 呢?

    本題的要求就是寫出這兩種初始條件下,60分鐘後Y的數目。

    題目的結果令你震驚嗎?這不是簡單的數字遊戲!真實的生物圈有着同樣脆弱的性質!也許因爲你消滅的那隻 Y 就是最終導致 Y 種羣滅絕的最後一根稻草!

    請忍住悲傷,把答案寫在“解答.txt”中,不要寫在這裏!

  • 答案:
    0
    94371840
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int x=10,y=90;
	bool flag=0;
	for(int i=1;i<=120;i++)
	{
		if(i%6==1)y-=x;
		else if(i%2==1)y-=x;
		if(y<=0)break;
		if(i%6==0)x+=x;
		if(i%4==0)y+=y;
	}
	printf("%d %d\n",x,y<=0?0:y);
	return 0;
}

——————————————————————————————————————————————

  1. 古堡算式

    福爾摩斯到某古堡探險,看到門上寫着一個奇怪的算式:

    ABCDE * ? = EDCBA

    他對華生說:“ABCDE應該代表不同的數字,問號也代表某個數字!”

    華生:“我猜也是!”

    於是,兩人沉默了好久,還是沒有算出合適的結果來。

    請你利用計算機的優勢,找到破解的答案。

    把 ABCDE 所代表的數字寫出來。

    答案寫在“解答.txt”中,不要寫在這裏!

  • 答案:
    21978
#include<iostream>
#include<cstdio>
using namespace std;
int a[6];
bool flag=0;
bool vis[10];
void seek(int d)
{
	if(flag)return;
	if(d>=6){
		if((a[0]*10000+a[1]*1000+a[2]*100+a[3]*10+a[4])*a[5]==(a[4]*10000+a[3]*1000+a[2]*100+a[1]*10+a[0])){
			for(int i=0;i<5;i++)printf("%d",a[i]);//一定要放在裏面,不然還有a[i]被賦值 
			flag=1;
		}
		return;
	}
	for(int i=0;i<=9;i++){
		if(!vis[i]){
			if(i==0&&(d==0||d==4||d==5))continue;
			a[d]=i;
			vis[i]=1;
			seek(d+1);
			vis[i]=0;
		}
	}
}
int main()
{
	seek(0);
	return 0;
}

——————————————————————————————————————————————

  1. 取球遊戲

    今盒子裏有n個小球,A、B兩人輪流從盒中取球,每個人都可以看到另一個人取了多少個,也可以看到盒中還剩下多少個,並且兩人都很聰明,不會做出錯誤的判斷。

    我們約定:

    每個人從盒子中取出的球的數目必須是:1,3,7或者8個。

    輪到某一方取球時不能棄權!

    A先取球,然後雙方交替取球,直到取完。

    被迫拿到最後一個球的一方爲負方(輸方)

    請編程確定出在雙方都不判斷失誤的情況下,對於特定的初始球數,A是否能贏?

    程序運行時,從標準輸入獲得數據,其格式如下:

    先是一個整數n(n<100),表示接下來有n個整數。然後是n個整數,每個佔一行(整數<10000),表示初始球數。

    程序則輸出n行,表示A的輸贏情況(輸爲0,贏爲1)。

    例如,用戶輸入:



    10
    18

    則程序應該輸出:
    0
    1
    1
    0

    注意:

    請仔細調試!您的程序只有能運行出正確結果的時候纔有機會得分!

    在評卷時使用的輸入數據與試卷中給出的實例數據可能是不同的。

    請把所有函數寫在同一個文件中,調試好後,存入與【考生文件夾】下對應題號的“解答.txt”中即可。

    相關的工程文件不要拷入。

    源代碼中不能能使用諸如繪圖、Win32API、中斷調用、硬件操作或與操作系統相關的API。

    允許使用STL類庫,但不能使用MFC或ATL等非ANSI c++標準的類庫。例如,不能使用CString類型(屬於MFC類庫)。

#include<iostream>
#include<cstdio>
using namespace std;
int n,a;
bool f[10005];
int b[4]={1,3,7,8};
void init()
{
	f[1]=0;
	for(int i=2;i<10000;i++){
		for(int j=0;j<4;j++){
			if(b[j]>=i)break;
			if(f[i-b[j]]==0)f[i]=1;
		}
	}
}
int main()
{
	init();
	scanf("%d",&n);
	while(n--){
		scanf("%d",&a);
		printf("%d\n",f[a]);
	}
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章