X bottles of beers, take y down, x and y are in Real Numbers Set
Jump to navigation
Jump to search
x bottles of beers, take y down, x and y are in Real Numbers Set is a program designed and implemented by PSTF.
This is the ADVANCED version of 99 bottles of beer. It receives two real number as input and assign them to x and y, and then print these lyrics(x and y has precision of 3 decimal digit, end if x≤0):
x bottles of beer on the wall, x bottles of beer. Take y down and pass it around, x-y bottles of beer on the wall. x-y bottles of beer on the wall, x-y bottles of beer. Take y down and pass it around, x-(2×y) bottles of beer on the wall. --snip--
Thus you may see this stupid lyric:
Take 5.283 down and pass it around, -4.229 bottles of beer on the wall.
Implementations
Python
x = float(input())
y = float(input())
while x > 0:
print(f"{x} bottles of beers on the wall, \n{x} bottles of beers. \nTake {y} down and pass it around, \n")
x -= y
print(f"{x} bottles of beers on the wall. \n\n")
print(f"""
No more bottles of beer on the wall,
no more bottles of beer.
Go to the store and buy some more,
{x} bottles of beer on the wall.
""")
C++
#include<bits/advc++.h>
using namespace std;
string unit = "bottles";
long double x, y;
int main()
{
printf("Please input: ");
cin >> x;
printf("Please input again: ");
cin >> y;
system("cls");
for (long double i = x; i > 0; i -= y)
{
if(i==1.0)
{
unit="bottle";
}
else
{
unit="bottles";
}
cout << fixed << setprecision(3) << i << " " << unit << " of beer on the wall, \n";
cout << fixed << setprecision(3) << i << " " << unit << " of beer. \n";
cout << "Take " << y << " down, pass it around, \n";
cout << fixed << setprecision(3) << i - y << " " << unit << " of beer on the wall.\n\n";
Sleep(50);
}
cout << "No more bottles of the beers on the wall, \n";
cout << "No more bottles of the beers. \n";
cout << "Go to the store and buy some more, \n";
cout << fixed << setprecision(3) << x << " bottles of the beers on the wall.";
return 0;
}
!中文
以“请输入初始数值:”作为提示输入 x 。
以“请输入\“增量\”:”作为提示输入 y 。
将 i 初始化为 x 。
清空屏幕。
重复执行以下代码直至 i 不大于 0 :
{
输出“%1 bottles of beers on the wall, \n%1 bottles of beers.\n”。%1将被 i 替代。
将 i 减去 y 。
输出“Take %1 down and pass it around,\n %2 bottles of beers on the wall.\n\n”。%1将被 y 替代,%2将被 i 替代。
}
输出“No more bottles of beers on the wall, \nNo more bottles of beers. \n”。
输出“Go to the store and buy some more, \n%1 bottles of beers on the wall.”。%1将被 x 替代。