【ZOJ 4070】Function and Function
阿新 • • 發佈:2018-11-07
【連結】 我是連結,點我呀:)
【題意】
【題解】
遞迴一會。
會發現最後肯定是0,1一直迴圈。
開始迴圈之後就直接返回結果就好。
【程式碼】
#include <bits/stdc++.h> #define ll long long #define rep1(i,a,b) for (int i = a;i <= b;i++) #define rep2(i,a,b) for (int i = a;i >= b;i--) using namespace std; const int N = 1e6; int base_f[10]={1,0,0,0,1,0,1,0,2,1}; int get_f(int x){ if (x==0) return 1; int temp = 0; while (x>0){ temp+=base_f[x%10]; x/=10; } return temp; } int f(int x,int dep){ if (dep==0) return x; if (x==0){ if (dep&1) return 1; else return 0; } if (x==1){ if (dep&1) return 0; else return 1; } return f(get_f(x),dep-1); } int main(){ #ifdef ccy freopen("rush.txt","r",stdin); #endif int T; scanf("%d",&T); while (T--){ int x,k; scanf("%d%d",&x,&k); printf("%d\n",f(x,k)); } return 0; }