#include <iostream.h> #include <stdio.h> long a[10000002]; long min(long a,long b) { if(a<b) return a; else return b; } int main() { long i,j; long n,k; i=1,j=1; a[1]=1; for(k=2;k<=10000001;k++) { a[k]=min(2*a[i]+1,3*a[j]+1); if(2*a[i]+1==a[k]) i++; if(3*a[j]+1==a[k]) j++; } while(cin>>n) { cout<<a[n]<<endl; } }

评论