當前位置:首頁 » 編程語言 » c語言國王賞賜金幣天平
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言國王賞賜金幣天平

發布時間: 2022-07-13 16:10:25

『壹』 c語言的一道題

這些以身試毒的奴隸,就是一堆bit,1到N這些數字對應酒的編號,所有bit0(化成二進制,最低位是0bit)是1的數字,都給一個人喝;所有bit1是1的數字,依次類推,這樣到20小時後,所有中毒奴隸代表的bit組成的數,就是有毒那瓶酒。
如果酒的數量恰好是2的整數次冪,拿走編號最大的那瓶,剩下的按同樣方法做。
例:
3瓶酒,要2個人,編號為0和1,0喝最低位是1的酒,即1號瓶和3號瓶
1喝bit1是1的酒,即2號瓶喝3號瓶
這樣,結果顯而易見,最終中毒的bit是1,沒中毒的是0,這個二進制數就是要找的那瓶酒的編號。

『貳』 C語言的問題

linux下用long long int,windows下用__int64
如果還是溢出,那就考慮用字元串保存

下面是計算第64個格子的示例:
-------------------------------------
#include<stdio.h>
char *reverse(char *, int);
// Only caculates the 64-th grid
int main()
{
char sum[100]="0", num[100]="1"; // sum, total of all 64 chess grids
int i,j,n=1,forward; // num, any chess grid
for (i=1; i<64; i++) {
forward = 0;
for (j=0;j<n;j++) {
num[j] = ((num[j]-'0')*2 +forward) %10 + '0';
forward = ((num[j]-'0')*2 +forward) /10;
}
if (forward == 1) {
num[j] = '1';
n ++;
num[n] = 0;
}
}
printf("%s\n",reverse(num, n));
//getch();
}

char *reverse(char *s, int n) { // n-1, the length of string s
int i, k;
char s1[100];
k=0;
for (i=n-1; i>=0; i--)
s1[k++] = s[i];
for (i=0; i<n; i++)
s[i]=s1[i];

return s;
}

『叄』 C語言問題

我還有前四題
(1) 基礎部分(以下8題,任選5題—60%,多做酌情加分)
①分屏處理數據系統:
隨機產生1000個數,並分屏顯示(每行顯示10個數字,每頁顯示10行),而且在每一屏的下方顯示本屏中數據的最大值、最小值和平均值。
提示:循環顯示,在分屏點上輸出press any key to continue…,通過getch()函數讓用戶以按回車鍵的方式進入下一屏。

②擲骰子游戲:
兩人玩骰子,游戲規則如下:
1) 兩人輪流擲骰子,每次擲兩個,每人最多擲10次。
2) 將每人每次的分值累加計分
3) 當兩個骰子點數都為6時,計8分;當兩個點數相等且不為兩個6時,計7分;當兩個點數不一樣時,計其中點數較小的骰子的點數。
4) 結束條件:當雙方都擲10次或經過5次後一方累計分數為另一方的兩倍。最後顯示雙方分數並判定優勝者。

③射擊游戲:
在程序運行時屏幕上方第一行隨機出現一個 符號,要求游戲者輸入一個1-200之間的整數,當用戶輸入一個整數後,一個*立即從屏幕底端的該整數列向上移動,若移動到屏幕的頂端能撞上 符號,則游戲者獲勝;若沒有撞上,則要求再輸入一個整數,共允許輸入5次,如果一直沒有撞上,則認為游戲者輸。
提示:
1)輸入 符號可以採用printf("%c",'\1')
2)顯示*號向上移動:輸出一些空行;輸出*號;以循環的方式增加延時(for(i=0;i<100000;i++););clrscr()清屏重新繪制*號。

④車票問題:
假設某線路的公共汽車共設置26個車站,准備了1元、2元…6元的車票,收費標准為:6站以內票價為1元,每4站票價增加1元。現在隨機生成一些乘客的上車站與下車站,顯示每位乘客應付的票價和單程售出的總票價,並統計幾元的車票賣得最多。

『肆』 用C語言編寫,/* 國王分財產。某國王臨終前給兒子們分財產。

#include<stdio.h>
void main()
{
int a[100], i = 0, n = 0;
while (1)
{
n = n + 9;
a[n] = n;
for (i = n - 1;i >= 1;i--)
{
if (a[i + 1] % 9 != 0)
break;
else
a[i] = a[i + 1] * 10 / 9 + i;
}
if (i)
break;
}
printf("共有%d個兒子\n財產分為%d份", n, a[1]);
getchar();
}

『伍』 國王分財產問題 要求用c++編寫 直接一點

不對啊?
這好像是個無窮遞歸的情況啊~~
每個人都得到1份,然後那剩餘的1/10,那剩餘還有「剩餘的9/10」啊。。。
難道這個「剩餘」是指分成若干份以後,剩下的「剩餘」?
如果是的話,實際上就是10個羅。。。

『陸』 編寫一個c程序模擬找假幣的過程,注意盡量用較少的次數找出這枚假幣。包括演算法分析,數據表示,程序流程

分治法就可以了,分15-15來稱,輕的15取一個出來再分7-7稱,要是相等那麼取出來的是假,不想等把輕的再取一個分3-3稱,如此類推。最壞打算是4次。最好是2次。

『柒』 求國際象棋中國王要打賞發明象棋的大臣的程序(c語言)

#include <iostream>
using namespace std;
void main()
{
long double i=1,sum=0;
int j;
for(j=0;j<64;j++)
{

sum+=i;
i*=2;
cout<<sum<<endl;
}
cout<<"total rice is:"<<sum<<endl;
}

數字太大,後邊是科學計數

『捌』 急求,我是c語言初學者,有一道要用for循環語句編寫的題目。

// wheat.h
#include "stdio.h"
#define CELLS 64; //格子數量
void main(void)
{
int index,each_cell,sum;
double volume_wheat;
for(index=1;index<=CELLS;index++)
{
each_cell=2^(index-1);//每個格子麥子的數量
sum+=each_cell; //統計麥子總數
}
volume_wheat=sum/(1.42*108);
printf("麥子總數量:%d\n",sum);
printf("麥子的立方數:%lf\n",volume_wheat);

return 0;
}

『玖』 今年的普及組第一題,c語言!有錯誤嗎 題目: 國王給騎士獎勵,第一天一金幣,第二三天兩金幣

#include <stdio.h>
int main()

{
freopen("coin.in", "r", stdin);
freopen("coin.out", "w", stdout);
int n,i,j;
scanf("%d", &n);
int ans = 0, count=0;
i=1;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
ans+=i;
count++;
if(count==n)
{
printf("%d", ans);
fclose(stdin);
fclose(stdout);
return 0;
}

}

}

fclose(stdin);
fclose(stdout);
return 0;
}