Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Dalam bahasa C, kira bilangan 1 dalam tatasusunan selepas N bergerak

Dalam bahasa C, kira bilangan 1 dalam tatasusunan selepas N bergerak

WBOY
WBOYke hadapan
2023-09-11 16:25:021194semak imbas

Dalam bahasa C, kira bilangan 1 dalam tatasusunan selepas N bergerak

Diberikan susunan saiz N. Tatasusunan pada mulanya adalah semua sifar. Tugasnya ialah mengira. Nombor 1 dalam tatasusunan selepas N bergerak. Setiap langkah N mempunyai peraturan yang berkaitan. Peraturannya ialah -

  • Pergerakan pertama - tukar elemen

  • pada kedudukan 1, 2, 3, 4…………
  • Langkah kedua - tukar kedudukan 2, 4, 6, 8……… …..

  • Langkah ketiga - tukar elemen pada kedudukan 3 dan 6, 9, 12………..

Kira bilangan 1 dalam tatasusunan terakhir.

Kita faham melalui contoh. .

Arr[]={ 0,0,0,0 } N=4

Penjelasan - Susunan selepas pergerakan seterusnya -

Number of 1s in the array after N moves − 2

Kaedah yang digunakan dalam atur cara di bawah adalah seperti berikut

Kami menggunakan tatasusunan integer Arr[] yang dimulakan dengan 0 dan integer N.

Fungsi Onecount mengambil Arr[] dan saiz Nnya sebagai input dan mengembalikan no. Nombor dalam tatasusunan terakhir selepas N bergerak.

Gelung for bermula dari 1 dan pergi ke penghujung tatasusunan.

Setiap i mewakili langkah ke-i.

Gelung bersarang untuk bermula pada indeks ke-0 dan pergi ke penghujung tatasusunan.

  • Untuk setiap langkah ke-i, jika indeks j ialah gandaan i (j%i==0), gantikan 0 pada kedudukan itu dengan 1.

  • Teruskan proses ini untuk setiap i sehingga akhir tatasusunan.

  • Nota
  • - Pengindeksan bermula dari i=1,j=1, tetapi pengindeksan tatasusunan bermula dari 0 hingga N-1. Jadi arr[j1] akan ditukar setiap kali.
  • Akhirnya melintasi keseluruhan tatasusunan sekali lagi, mengira tidak. Ia mengandungi 1 dan disimpan dalam kiraan.
  • Mengembalikan kiraan hasil yang diingini.
  • Contoh

  • Live Demo
  • Move 1: { 1,1,1,1 }
    Move 2: { 1,0,1,0 }
    Move 3: { 1,0,0,3 }
    Move 4: { 1,0,0,1 }
    Number of ones in the final array is 2.

    Output

  • Jika kita menjalankan kod di atas, ia akan menghasilkan output berikut -
  • Arr[]={ 0,0,0,0,0,0} N=6

Atas ialah kandungan terperinci Dalam bahasa C, kira bilangan 1 dalam tatasusunan selepas N bergerak. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam