C語言程式設計練習60 非常可樂

2022-06-20 18:54:09 字數 1108 閱讀 8183

題目描述

大家一定覺的運動以後喝可樂是一件很愜意的事情,但是seeyou卻不這麼認為。因為每次當seeyou買了可樂以後,阿牛就要求和seeyou一起分享這一瓶可樂,而且一定要喝的和seeyou一樣多。但seeyou的手中只有兩個杯子,它們的容量分別是n 毫公升和m 毫公升 可樂的體積為s (s<101)毫公升(正好裝滿一瓶) ,它們三個之間可以相互倒可樂 (都是沒有刻度的,且 s==n+m,101>s>0,n>0,m>0) 。聰明的acmer你們說他們能平分嗎?如果能請輸出倒可樂的最少的次數,如果不能輸出"no"。

輸入三個整數 : s 可樂的體積 , n 和 m是兩個杯子的容量,以"0 0 0"結束。

輸出如果能平分的話請輸出最少要倒的次數,否則輸出"no"。

樣例輸入

7 4 2

6 3 3

6 4 2

6 1 1

6 4 1

0 0 0

樣例輸出

no1no

no3思路:搜尋雖然做好幾道但是沒有摸著門路,難受,直接看的大佬的

#includeusing namespace std;

bool flag[103][103][103];//表示三個容器中現在分別有多少飲料;

int n,m,s;

struct cool

pre,nextt; //剛開始用next,gc++編譯不過去;

void change(int i,int j) //該函式分別討論倒水的六種情況;

else if(i==1&&j==3) //上同;

else if(i==2&&j==1)//上同;

else if(i==2&&j==3)//上同;

else if(i==3&&j==1)//上同;

else if(i==3&&j==2)//上同;

}int bfs(int a,int b,int c)}}

}return -1;

}int main()

{while(cin>>n>>m>>s&&n+s+m!=0)

{if((n&1)==1) //奇數一定無法均分,因為杯子的刻度都是整數;

{cout<<"no"<=0)cout《參考:

練習二 1017 非常可樂

題目 大家一定覺的運動以後喝可樂是一件很愜意的事情,但是seeyou卻不這麼認為。因為每次當seeyou買了可樂以後,阿牛就要求和seeyou一起分享這一瓶可樂,而且一定要喝的和seeyou一樣多。但seeyou的手中只有兩個杯子,它們的容量分別是n 毫公升和m 毫公升 可樂的體積為s s 101 ...

ACM OJ 《非常可樂》C

大家一定覺的運動以後喝可樂是一件很愜意的事情,但是seeyou卻不這麼認為。因為每次當seeyou買了可樂以後,阿牛就要求和seeyou一起分享這一瓶可樂,而且一定要喝的和seeyou一樣多。但seeyou的手中只有兩個杯子,它們的容量分別是n 毫公升和m 毫公升 可樂的體積為s s 101 毫公升...

課程練習二 1017非常可樂

problem description 大家一定覺的運動以後喝可樂是一件很愜意的事情,但是seeyou卻不這麼認為。因為每次當seeyou買了可樂以後,阿牛就要求和seeyou一起分享這一瓶可樂,而且一定要喝的和seeyou一樣多。但seeyou的手中只有兩個杯子,它們的容量分別是n 毫公升和m 毫...