1583

来源:互联网 发布:如何评价食草家族 知乎 编辑:程序博客网 时间:2024/06/10 23:15

紫书上的题,这道题不能用普通的 for 循环做,否则肯定超时,正如紫书上的说,要先打表,先把所有的结果存起来,然后在主函数中直接运用,这样可以减少运行时间;

#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <algorithm>using namespace std;#define max 100005int sum[max];int main(){   int n;   memset(sum,0,sizeof(sum));   for(int k=1;k<max;k++){      int x=k,y=k;      while(x>0) {y+=x%10;x=x/10;}      if(sum[y]==0||k<sum[y]) sum[y]=k;   }   cin>>n;   while(n--){     int m;cin>>m;     cout<<sum[m]<<endl;   }   return 0;}


0 0
原创粉丝点击