这个代码怎样改才不会TLE?
#include <bits/stdc++.h>
#include <iostream>
#include <cstdio>
using namespace std;
int n,t,r,ans=0;
int dzl(int x){
while(x>0){
r=x%10;
if(r==7) return 0;
x/=10;
}
return 1;
}
int main(){
scanf("%d",&t);
for (int i=1;i<=t;i++){
scanf("%d",&n);
for (int j=1;j<=n;j++){
if(dzl(j)==1) ans++;
}
printf("%d\n",ans);
ans=0;
}
return 0;
}