Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
20211 | 陈路垚 | 水仙花数 | C++ | 无测评数据 | 0 | 0 MS | 0 KB | 587 | 2021-06-05 19:08:33 |
#include<iostream> #include<cmath> using namespace std; int a[21],ans=0; int n,k; bool check(int x) { int i,t=0,xx,ge,cj,sum=0; xx=x; while (xx){ t++;xx/=10; } xx=x; while (xx){ ge=xx%10;cj=1; for (i=1;i<=t;++i){ cj*=ge; } sum+=cj; xx/=10; } if(sum==x)return 1; else return 0; } void search(int t,int s,int l) { if(t==k){if(check(s))ans++;} else for(int i=l;i<=n;i++) search(t+1,s+a[i],i+1); } int main() { cin>>n>>k; for(int i=1;i<=n;i++) cin>>a[i]; search(0,0,1); cout<<ans; return 0; }