【c++】サイダーを飲んで、1本のサイダーは1元で、2つの空き瓶は1本のサイダーを交換することができて、20元をあげて、どれだけのサイダーを飲むことができますか.プログラミング実装.

804 ワード

まず2つの空き瓶を1本の飲み物に交換します.じゃ、ラウンドごとに飲み終わったら交換します.
コードを参照してください.
//   ,1   1 ,2          , 20 ,      。
#include
#include
int main()
{
	int money = 20;
	int sum = money;
	int temp = 20;
	int yushu = 0;
	int i = 0;
	int arr[10] = { 0 };//            
	while (1)
	{
		++i;
		temp = temp / 2;//10,5,2,1
		yushu = temp % 2;//0,0,1,0
		arr[i] = yushu;
		sum = temp + sum;//30,35,37,38,39
		if (1 == temp)//            ,                
		{
			yushu = 0;
			for (i = 0; i < 10; ++i)
			{
				yushu += arr[i];//           
            }
			yushu %= 10;
			temp = (temp + yushu) / 2;//    
            sum = sum + temp;//         
			break;
		}
		
	}
	printf("%d", sum);
	system("pause");
	return 0;
}

構想はコードに現れ、コードが話せると信じている.