免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

c語言報數出圈函數PTA 圓圈報數c語言函數

M個人圍成一圈報數,報到N的人出列,輸出出列順序!用C語言實現!

此題可用數學方法求解。

長治網站建設公司創新互聯建站,長治網站設計制作,有大型網站制作公司豐富經驗。已為長治數千家提供企業網站建設服務。企業網站搭建\成都外貿網站建設要多少錢,請找那個售后服務好的長治做網站的公司定做!

設有n個人(編號0~(n-1)),從0開始報數,報到(m-1)的退出,剩下的人繼續從0開始報數? (用數學方法解的時候需要注意應當從0開始編號,因為取余會取到0解。)

實質是一個遞推,n個人中最終留下來的序號與n-1個人中留下來的人的序號有一個遞推關系式。

假設除去第k個人,則

0, 1, 2, 3, ..., k-2, k-1, k, ..., n-1 ???????? // 原始序列 (1)

0, 1, 2, 3, ..., k-2, ? ? ?, k, ..., n-1????? // 除去第k人,即除去序號為k-1的人 ? (2)

k, k+1, ..., n-1, ? ?0, ? ?1, ? ? ? ?..., k-2// 以序號k為起始,從k開始報0? (3)

0, 1, ? ? ..., n-k-1, n-k, n-k+1, ..., n-2 ? // 作編號轉換,此時隊列為n-1人  (4)

換后就完完全全成為了(n-1)個人報數的子問題,注意(1)式和(4)式,是同一個問題,不同的僅僅是人數。比較(4)和(3),不難看

出,0+k=k, 1+k=k+1, ... ,(3)式中'0'后面的數字,((n-3)+k)%n=k-3,((n-2)+k)%n=k-2,

對于(3)式中'0'前面的數字,由于比n小,也可看作(0+k)%n=k,? (1+k)%n=k+1,? 故可得出規律:

設(3)中某一數為x' , (4)中對應的數為x,則有:x'=(x+k)%n.

設x為最終留下的人序號時,隊列只剩下1人時,顯然x=0; 此時可向前回溯至2人時x對應的序號,3人時x對應的序號……直至n人時x的序號,即為所求。

#include?stdio.h

int?main()

{????

int?n,m,s=0;????

scanf("%d%d",n,m);????

for?(int?i=2;i=n;++i)????

{s=(s+m)%i;????

printf("%d\n",s+1);}????

return?0;

}

C語言:10人圍一圈,1到8循環報數,報數為8的出圈到圈中剩一人為止按退出次序輸出出圈人原來的號

#include stdio.h

int main(void)

{

int n, m, i, s=0;

printf ("N M = "); scanf("%d%d", n, m);

for (i=2; i=n; i++) s=(s+m)%i;

printf ("The winner is %d\n", s+1);

}

說明:只要輸入N=10,M=8即可滿足你的要求 還可以有其他變化 其中n為總人數 M為報數最大值

C語言有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報 數)凡報到3的人退出圈子麻煩注釋下代碼

#includelt;stdio.hgt;

#define N 5//人數

void main()

{

int a[N]={0},i=0,out_n=0,call_n=0,*p;

p=a;

while(1){//循環報數

if(*p==0){//如果健在

if(out_n==(N-1))break;//如果僅剩一人

call_n++;//報數

call_n%=3;//最大為3,到了3就從0開始

if(call_n==0){*p=1;out_n++;}//為0(即3)出局

}

p++;if(p==a+N)p=a;//循環轉向下一人

}

printf("最后剩余者的編號是:%d\n",p+1-a);

}

擴展資料:

printf()函數是格式化輸出函數,一般用于向標準輸出設備按規定格式輸出信息。在編寫程序時經常會用到此函數。

函數的原型為:int printf(const char*format,...);函數返回值為整型。若成功則返回輸出的字符數,輸出出錯則返回負值。

printf()函數的調用格式為:

printf("lt;格式化字符串gt;",lt;參量表gt;);

其中格式化字符串包括兩部分內容:一部分是正常字符;這些字符將按原樣輸出;另一部分是格式化規定字符,以"%"開始,后跟一個或幾個規定字符,用來確定輸出內容格式。

參量表是需要輸出的一系列參數,其個數必須與格式化字符串所說明的輸出參數個數一樣多,各參數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。

規定符

%d十進制有符號整數

%u十進制無符號整數

%f浮點數

%s字符串

%c單個字符

%p指針的值

%e指數形式的浮點數

%x,%X無符號以十六進制表示的整數

%o無符號以八進制表示的整數

%g把輸出的值按照%e或者%f類型中輸出長度較小的方式輸出

%p輸出地址符

%lu 32位無符號整數

%llu 64位無符號整數

分享文章:c語言報數出圈函數PTA 圓圈報數c語言函數
網址分享:http://newbst.com/article44/doihiee.html

成都網站建設公司_創新互聯,為您提供做網站網站制作網站收錄網站內鏈網頁設計公司品牌網站建設

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站建設網站維護公司