最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

0090-方法越來(lái)越妙!你能想到最優(yōu)策略救下最多人嗎?| 囚徒帽子邏輯謎題

2023-08-22 20:16 作者:氵軍xig  | 我要投稿

0090 囚徒帽子邏輯謎題

?
11:45
?

程序效果圖:

original array 為隨機(jī)帶的帽子顏色

sum array 為看到的帽子顏色對(duì)應(yīng)數(shù)字求和

rem array 為求和后對(duì)帽子顏色數(shù)量求余

answer array 為囚徒回答帽子的顏色

由圖可見,第一個(gè)報(bào)數(shù)的犧牲了自己保全了前n個(gè)人


代碼如下:

~~~

#include<stdio.h>

#include<stdlib.h>

#include<time.h>


void print_arr(int *arr, int n)

{

? ? printf(": ");

? ? for(int i = 0; i < n; i++)

? ? {

? ? ? ? printf("%d ", arr[i]);

? ? }

? ? printf("\n");

}


int main(int argc, char const *argv[])

{

? ? int n, i;

? ? int number;

? ? printf("input people number :");

? ? scanf("%d", &number);

? ? printf("input hat color quantity :");

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


? ? int *array = (int *)malloc(sizeof(int) * number);

? ? // 自動(dòng)生成

? ? srand(time(0));

? ? for(int i = 0; i < number; i++)

? ? {

? ? ? ? array[i] = rand() % n; ?// n 上面得

? ? }


? ? // 手輸數(shù)字

? ? // printf("input number: ");

? ? // for (i = 0; i < number; i++)

? ? // {

? ? // ? ? scanf("%d", &array[i]);

? ? // }


? ? printf("\n");

? ? printf("original array");

? ? print_arr(array,number);

? ? printf("\n");


? ? // 前面n-1-i個(gè)人帽子數(shù)求和

? ? int *arr = (int *)malloc(sizeof(int) * number - 1);

? ? int sum = 0;

? ? for (int i = number - 1; i > 0; i--)

? ? {

? ? ? ? sum += array[i];

? ? ? ? arr[i-1] = sum;

? ? }

? ? printf("sum array");

? ? print_arr(arr, number - 1);


? ? // 前面n-1-i個(gè)人帽子求和 取 帽子顏色的模

? ? int *arr_0 = (int *)malloc(sizeof(int) * number - 1);

? ? for (int i = number - 1; i > 0; i--)

? ? {

? ? ? ? arr_0[i-1] = arr[i-1]%n;

? ? }

? ? printf("rem array");

? ? print_arr(arr_0, number - 1);


? ? // 算法算出自身帽子顏色

? ? int *arr_1 = (int *)malloc(sizeof(int) * number);

? ? // 最先報(bào)顏色到倒數(shù)第二個(gè)報(bào)顏色算法,聽到帽子顏色 - 看到帽子顏色(求和求余)

? ? arr_1[0] = arr_0[0];

? ? for (int i = 1; i < number - 1; i++)

? ? {

? ? ? ? arr_1[i] = (arr_0[i-1] - arr_0[i] + n)%n ;

? ? }

// 最后一個(gè)報(bào)顏色算法

? ? int temp = arr_1[0];

? ? for (int i = 1; i < number - 1; i++)

? ? {

? ? ? ? temp = (temp - arr_1[i] + n)%n;

? ? }

? ? arr_1[number - 1] = temp;


? ? printf("answer array");

? ? print_arr(arr_1, number);


? ? free(array);

? ? free(arr);

? ? getchar();

? ? system("pause");

? ? return 0;

}

~~~

0090-方法越來(lái)越妙!你能想到最優(yōu)策略救下最多人嗎?| 囚徒帽子邏輯謎題的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
托里县| 泸溪县| 西藏| 岐山县| 尚义县| 无为县| 尚志市| 隆回县| 普兰县| 融水| 突泉县| 弋阳县| 重庆市| 林芝县| 肇州县| 呼玛县| 宝清县| 六安市| 汕头市| 鹿邑县| 许昌县| 益阳市| 罗源县| 鄂伦春自治旗| 鹤峰县| 绵阳市| 彭山县| 合江县| 兖州市| 拜泉县| 普洱| 余庆县| 昌邑市| 铁岭市| 嘉义县| 新津县| 阜阳市| 东乡族自治县| 西畴县| 娄底市| 无极县|