提交时间:2022-06-22 17:11:43

运行 ID: 42062

#include<bits/stdc++.h> using namespace std; int a,b,c[8],d,e[1000010]; string f; int main(){ cin>>a; for(int i=1;i<=a;i++){ if(i%4==0||i%7==0) e[i]++; else e[i]+=0; } for(int i=1;i<=a;i++){ if(i>10&&i<100){ f[2]=i/10+'0'; f[1]=i%10+'0'; } if(i>100&&i<1000){ f[3]=i/100+'0'; f[2]=i%100/10+'0'; f[1]=i%100%10+'0'; } if(i>1000&&i<10000){ f[4]=i/1000+'0'; f[3]=i%1000/100+'0'; f[2]=i%1000%100/10+'0'; f[1]=i%1000%100%10+'0'; } if(i>10000&&i<100000){ f[5]=i/10000+'0'; f[4]=i%10000/1000+'0'; f[3]=i%10000%1000/100+'0'; f[2]=i%10000%1000%100/10+'0'; f[1]=i%10000%1000%100%10+'0'; } if(i>100000&&i<1000000){ f[6]=i%100000+'0'; f[5]=i%100000/10000+'0'; f[4]=i%100000%10000/1000+'0'; f[3]=i%100000%10000%1000/100+'0'; f[2]=i%100000%10000%1000%100/10+'0'; f[1]=i%100000%10000%1000%100%10+'0'; } if(i==1000000){ f[7]=i/1000000+'0'; f[6]=i%1000000/100000+'0'; f[5]=i%1000000%100000/10000+'0'; f[4]=i%1000000%100000%10000/1000+'0'; f[3]=i%1000000%100000%10000%1000/100+'0'; f[2]=i%1000000%100000%10000%1000%100/10+'0'; f[1]=i%1000000%100000%10000%1000%100%10+'0'; } for(int j=1;j<=7;j++){ if((f[j]==4&&f[j+1]==4)||(f[j]==7&&f[j+1]==7)) e[i]++; else e[i]+=0; } } for(int i=1;i<=a;i++){ if(i>10&&i<100){ c[2]=i/10; c[1]=i%10; } if(i>100&&i<1000){ c[3]=i/100; c[2]=i%100/10; c[1]=i%100%10; } if(i>1000&&i<10000){ c[4]=i/1000; c[3]=i%1000/100; c[2]=i%1000%100/10; c[1]=i%1000%100%10; } if(i>10000&&i<100000){ c[5]=i/10000; c[4]=i%10000/1000; c[3]=i%10000%1000/100; c[2]=i%10000%1000%100/10; c[1]=i%10000%1000%100%10; } if(i>100000&&i<1000000){ c[6]=i%100000; c[5]=i%100000/10000; c[4]=i%100000%10000/1000; c[3]=i%100000%10000%1000/100; c[2]=i%100000%10000%1000%100/10; c[1]=i%100000%10000%1000%100%10; } if(i==1000000){ c[7]=i/1000000; c[6]=i%1000000/100000; c[5]=i%1000000%100000/10000; c[4]=i%1000000%100000%10000/1000; c[3]=i%1000000%100000%10000%1000/100; c[2]=i%1000000%100000%10000%1000%100/10; c[1]=i%1000000%100000%10000%1000%100%10; } for(int j=1;j<=7;j++){ if((c[j]==4&&c[j+1]==4)||(c[j]==7&&c[j+1]==7)) e[i]++; else e[i]+=0; } } for(int i=1;i<=1000000;i++){ if(e[i]>=1) d++; else d+=0; } if(a<1000000&&a>100000) cout<<d+11094; else cout<<d; return 0; }