藍橋杯 歷屆試題 猜字母
阿新 • • 發佈:2019-02-09
把abcd...s共19個字母組成的序列重複拼接106次,得到長度為2014的串。
接下來刪除第1個字母(即開頭的字母a),以及第3個,第5個等所有奇數位置的字母。
得到的新串再進行刪除奇數位置字母的動作。如此下去,最後只剩下一個字母,請寫出該字母。
答案是一個小寫字母,請通過瀏覽器提交答案。不要填寫任何多餘的內容。
思路:
刪除奇數,我們就取偶數的字母,只是要注意會下標和個數不同,下標為0時是第一個,我們要取偶數就要取下標%2==1的字母
直至字串長度為1停止
程式碼:
#include<iostream>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
char a[2020],s[20]="abcdefghijklmnopqrs";
int i,len,k=0;
for (i=0;i<106;i++)
strcat(a,s);
while (k!=1)
{
k=0;
for (i=0;a[i];i++)
{
if (i%2==1)//刪除奇數,則要取奇數下標的數
a[k++]=a[i];
}
a[k]='\0';
}
cout<<a;
}