#include<iostream> #include<cstdio> using namespace std; int fac(int n) { if(n<2) return 0; if(n==2) return 1; return n/3+fac(n%3+n/3); } int main(void) { int n,sum; while(scanf("%d",&n)==1 && n) { sum=fac(n); cout << sum << endl; } return 0; } c语言 #include<stdio.h> int fac(int n) { if(n<2) return 0; if(n==2) return 1; return n/3+fac(n%3+n/3); } int main(void) { int n,sum; while(scanf("%d",&n)==1 && n) { sum=fac(n); printf("%d\n",sum); } return 0; }
0.0分
4 人评分
#include <iostream> using namespace std; int Reclaim(int x,int Sum,int water) { water = x / 3; Sum += water; int remainder = x % 3 + water; while (1) { if (remainder >= 3){ Sum=Reclaim(remainder,Sum,water); break; } else if (remainder == 2) { Sum++; break; } else break; } return Sum; } int main() { int n, sum = 0; int Reclaim(int x,int Sum,int water); while(scanf_s("%d",&n)!=EOF&&n){ sum = Reclaim(n,0,0); cout << sum << endl; } return 0; }