信息学奥赛C++语言: 抽奖2
【題目描述】
公司舉辦年會(huì),為了活躍氣氛,設(shè)置了搖獎(jiǎng)環(huán)節(jié)。參加聚會(huì)的每位員工都有一張帶有號(hào)碼的抽獎(jiǎng)券。現(xiàn)在,主持人從小到大公布n個(gè)不同的獲獎(jiǎng)號(hào)碼,小謝看著自己抽獎(jiǎng)券上的號(hào)碼win,無(wú)比緊張。請(qǐng)編寫一個(gè)程序,如果小謝獲獎(jiǎng)了,請(qǐng)輸出他中獎(jiǎng)的是第幾個(gè)號(hào)碼;如果沒(méi)喲中獎(jiǎng),請(qǐng)輸出0。
【輸入】
第一行1個(gè)正整數(shù)n,表示有n個(gè)獲獎(jiǎng)號(hào)碼。
第二行包括n個(gè)正整數(shù),之間用一個(gè)空格隔開(kāi),表示依次公布的n個(gè)獲獎(jiǎng)號(hào)碼。
第三行1個(gè)正整數(shù)win,表示小謝抽獎(jiǎng)券上的號(hào)碼。
1≤獲獎(jiǎng)號(hào)碼,win<10000。
【輸出】
一行一個(gè)整數(shù),如果小謝中獎(jiǎng)了,請(qǐng)輸出中的是第幾個(gè)號(hào)碼;如果沒(méi)有中獎(jiǎng)?wù)堓敵?。
【輸入樣例】
7
1 2 3 4 6 17 9555
3
【輸出樣例】
3
代碼
#include<cstdio> using namespace std; int i,n,a[101],win,t,left,right,mid; int main() {scanf("%d",&n);for(i=1;i<=n;i++)scanf("%d",&a[i]);scanf("%d",&win);t=0;left=1;right=n;while(left<=right){mid=(left+right)/2;if(a[mid]==win){t=mid;break;}if(win<a[mid])right=mid-1;if(win>a[mid])left=mid+1;}printf("%d",t);return 0; } 新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的信息学奥赛C++语言: 抽奖2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 最长平台(信息学奥赛一本通-T1116)
- 下一篇: 信息学奥赛C++语言: 素数回文数的个数