标签:span += bsp its type bit pre long 规律
打表找规律吧……
一定要记得每一步都得开long long
然后可以发现所有的森哥数每一位只可能是0,1,2,3
就可以想到最高O(3^9)的算法
枚举1e9之内的所有满足条件的数判断
枚举9位数,最后1e9整无法枚举到
特判一下
1 /* 2 Written By StelaYuri 3 */ 4 #include<bits/stdc++.h> 5 using namespace std; 6 typedef long long L; 7 L senge(L in){ 8 L out=0; 9 while(in) 10 out+=in%10LL,in/=10LL; 11 return out; 12 } 13 int main(){ 14 L t,m,l,r,a,b,c,d,e,f,g,h,i,s=0; 15 scanf("%lld%lld",&l,&r); 16 for(a=0;a<4;a++) 17 for(b=0;b<4;b++) 18 for(c=0;c<4;c++) 19 for(d=0;d<4;d++) 20 for(e=0;e<4;e++) 21 for(f=0;f<4;f++) 22 for(g=0;g<4;g++) 23 for(h=0;h<4;h++) 24 for(i=0;i<4;i++){ 25 t=a*1e8+b*1e7+c*1e6+d*1e5+e*1e4+f*1e3+g*100+h*10+i; 26 if(t<l) 27 continue; 28 if(t>r){ 29 printf("%lld",s); 30 return 0; 31 } 32 m=a+b+c+d+e+f+g+h+i; 33 if(senge(t*t)==m*m) 34 s++; 35 } 36 if(r==1e9) 37 s++; 38 printf("%lld",s); 39 40 return 0; 41 }
标签:span += bsp its type bit pre long 规律
原文地址:https://www.cnblogs.com/stelayuri/p/12234432.html