Przykład C Zadanie 21
100 przypadki klasycznego języka C
Tytuł: Monkey jedzenia problemy brzoskwini: małpa od jego pierwszego dnia liczba brzoskwinia, pół zjedzone od razu, a nie uzależnienie, ale również jeść rano z kolei zjadane przez pozostałą brzoskwini połowę, a następnie zjeść , Po rano zjadłem na dzień przed resztą pół zerowego. Dzień 10 rano, kiedy chcesz jeść, widzą tylko jedną brzoskwinię. Poszukiwany pierwszy dzień w ogólnej liczbie zrywane.
Analiza Program: przyjąć metodę odwrotnej myślenia, wywnioskować z przodu.
1) Niech x1 jest liczba poprzednich brzoskwiń dziennie, brzoskwinie na następny dzień zadanej liczby x2, a następnie:
x2 = x1 / 2-1, x1 = (x2 + 1) * 2
x3 = x2 / 2-1, x2 = (x3 + 1) * 2
Tak więc: X = przed (po) x + 1 * 2
2) od dnia 10 do dnia 1, analogicznie jest procesem cyklicznym.
Kod źródłowy:
// Created by www.w3big.com on 15/11/9. // Copyright © 2015年 本教程. All rights reserved. // #include <stdio.h> #include <stdlib.h> int main(){ int day, x1 = 0, x2; day=9; x2=1; while(day>0) { x1=(x2+1)*2; // 第一天的桃子数是第2天桃子数加1后的2倍 x2=x1; day--; } printf("总数为 %d\n",x1); return 0; }
Powyższy przykład wyjście jest:
总数为 1534