研發工程師程式設計題
阿新 • • 發佈:2019-02-16
[程式設計題]刪數
有一個數組a[N]順序存放0-N,要求沒隔兩個數刪掉一個數,到末尾時迴圈至開頭繼續進行,求最後一個被刪掉的數的原始下標位置。以8個數(N=7)為例:{0,1,2,3,4,5,6,7},0->1->2(刪除)->3->4->5(刪除)->6->7->0(刪除),如此迴圈直到最後一個數被刪除。
輸入描述:
每組資料為一行一個整數n(小於等於1000),為陣列成員數,如100,則對a[999]進行計算。
輸出描述:
一行輸出最後一個被刪掉的數的原始下標位置。
輸入例子:
8
輸出例子:
6
int main()
{
queue<int >Q;
int n; int ans;
cin >> n;
for (int i = 0; i < n; i++)
{
Q.push(i);
}
while (!Q.empty())
{
if (Q.size() == 1) ans = Q.front();
for (int i = 0; i < 2; i++)
{
Q.push(Q.front());
Q.pop();
}
Q.pop();
}
cout << ans;
return 0;
}
[程式設計題]字元集合
輸入一個字串,求出該字串包含的字元集合
輸入描述:
每組資料輸入一個字串,字串最大長度為100,且只包含字母,不可能為空串,區分大小寫。
輸出描述:
每組資料一行,按字串原有的字元順序,輸出字元集合,即重複出現並靠後的字母不輸出。
輸入例子:
abcqweracb
輸出例子:
abcqwer
int main()
{
string S;
cin >> S;
for (int i = 1; i < S.length(); i++)
{
auto sIt = S.begin() + i;
while (sIt!=S.end())
{
if (S[i - 1] == *sIt)
{
S.erase(sIt);//刪除後自動會sIt++
}
else
sIt++;
}
}
cout << S <<endl;
return 0;
}