萌新打卡 藍橋杯 基礎練習 查詢整數的三種解法

2021-10-02 18:53:40 字數 1452 閱讀 9092

練習系統在這裡

問題描述

給出乙個包含n個整數的數列,問整數a在數列中的第一次出現是第幾個。

輸入格式

第一行包含乙個整數n。

第二行包含n個非負整數,為給定的數列,數列中的每個數都不大於10000。

第三行包含乙個整數a,為待查詢的數。

輸出格式

如果a在數列**現了,輸出它第一次出現的位置(位置從1開始編號),否則輸出-1。

樣例輸入

61 9 4 8 3 9

9樣例輸出

2資料規模與約定

1 <= n <= 1000。

乍一看非常簡單非常基礎直接上手一刷**

#include

using

namespace std;

int a[

1005];

int main (

) cin>>m;

for(

int i=

1;i<=n;i++)}

cout<<

"-1"

}

邏輯:在遍歷陣列的過程中 如果發現有和m相同的數 輸出i同時結束程式 如果遍歷完成沒有滿足if條件 輸出-1 然後結束程式

後來無意中看見一位大佬的題解

我是超連結

他的思路是通過限制i的前進來限制整個程式 修改遍歷的終止條件 那麼有一些小問題了比如因為曾經的第二個迴圈變數i在判斷時已經不再迴圈內了,所以不能再迴圈中使用他 而是要在外頭進行定義這個變數 便於區分 採用j

#include

using

namespace std;

int a[

1005];

int main (

) cin>>m;

for(j=

1;m!=a[j]

&&j<=n;j++);

if(j == n+1)

cout<<

"-1"

cout

}

但是可能會有人想 一時半會兒想不到第二種方法去修改限制條件怎麼辦,那麼其實還可以直接就遍歷迴圈 然後加break來終止迴圈之後再來做類似第二種解法的操作啦 **手打如下

#include

using

namespace std;

int a[

1005];

int main (

) cin>>m;

for(j=

1;j<=n;j++)if

(m==a[j]

)break;if

(j==n+1)

cout<<

"-1"

cout

}

藍橋杯練習 基礎練習 查詢整數

題目鏈結 問題描述 給出乙個包含n個整數的數列,問整數a在數列中的第一次出現是第幾個。輸入格式 第一行包含乙個整數n。第二行包含n個非負整數,為給定的數列,數列中的每個數都不大於10000。第三行包含乙個整數a,為待查詢的數。輸出格式 如果a在數列中出現了,輸出它第一次出現的位置 位置從1開始編號 ...

藍橋杯 基礎練習 查詢整數

問題描述 給出乙個包含n個整數的數列,問整數a在數列中的第一次出現是第幾個。輸入格式 第一行包含乙個整數n。第二行包含n個非負整數,為給定的數列,數列中的每個數都不大於10000。第三行包含乙個整數a,為待查詢的數。輸出格式 如果a在數列中出現了,輸出它第一次出現的位置 位置從1開始編號 否則輸出 ...

藍橋杯基礎練習 查詢整數

問題描述 給出乙個包含n個整數的數列,問整數a在數列中的第一次出現是第幾個。輸入格式 第一行包含乙個整數n。第二行包含n個非負整數,為給定的數列,數列中的每個數都不大於10000。第三行包含乙個整數a,為待查詢的數。輸出格式 如果a在數列中出現了,輸出它第一次出現的位置 位置從1開始編號 否則輸出 ...