2017-07-01 12 views
0

配列を特定回数(k)繰り返して、どこが停止するかを確認したい場合は1,2,3,4が出力されます。出力値はk = 5の場合は1です。配列の終わりに達すると、それは再び始まり、k = 5に達するまで数え続けます。私は、これは私がこれまで持っているもので、これは理にかなって願っています:アレイを特定の回数スキャンしてから要素を取り除く

int numbers[] = {1,2,3,4}; 
int count =0; 
int K =5; 

while (count !=k) 
{ 
//dont know what to do here 
} 

私はこれを取得することができません同様のロジックを説明してください。

+5

完全に不明です。 –

+0

達成したいことを理解できません。 '1,2,4'の出力が' 1'になる理由を記述してください。何を「スキャン」していますか?課題の場合は、その原文を投稿してください。 –

+0

@RichardCrittenm大変申し訳ございません。ご質問ありがとうございました 説明するには本当に難しいです:( とその割り当ての質問ではありません 実際にここからの質問 https://www.hackerrank.com/challenges/ caesar-cipher-1 –

答えて

0

あなたの配列は、あなたが知っているどのサイズ4であるあなたが知りたい場合は、あなたのケースではときarray.doを通してあなたのループのk倍、

int c = numbers[k % 4];

される要素であるのでabove c = 1;ループする必要はありません。

2

なぜアレイ全体を繰り返し処理するのですか?配列numbersのサイズでちょうどK modである。

int numbers[] = {1,2,3,4}; 
int K = 5; 

int arraySize = sizeof(numbers)/sizeof(numbers[0]); 
int count = K % arraySize; 
return numbers[count]; 
関連する問題