8 条题解
-
2
题解
不难看出,此题无疑是一道水爆了的题,缘由在于其数据范围。 因此,我们仅需将的三个数位一次性分离出来并直接判断是否三位均不等于即可。 C++代码实现如下:
#include <queue> #include <math.h> #include <stack> #include <stdio.h> #include <iostream> #include <vector> #include <iomanip> #include <string.h> #include <algorithm> using namespace std; #define int long long #define float double #define N 30000010 #define INF 0xc00000fd #define scf scanf #define ptf printf #define gtc getchar #define ptc putchar queue<int> Q; stack<int> S; vector<int> V; vector<int> travel(vector<int> A, vector<int> B, vector<int> U, vector<int> V, vector<int> W); #ifndef SOMETHING_H #define SOMETHING_H #endif inline int wei(int n){ int cnt = 0; while(n > 0){ n /= 10; cnt++; } return cnt; } inline bool isPrime(int n){ if(n < 2) return 0; for(int i = 2; i * i <= n; ++i) if(n % i == 0) return 0; return 1; } inline int read(string n){ int x = 0, f = 1; ptf("%s", n.c_str()); char c = gtc(); while(c < '0' || c > '9'){ if(c == '-') f = -1; c = gtc(); } while(c >= '0' && c <= '9'){ x = x * 10 + c - 48; c = gtc(); } return x * f; } inline float input(string n){ float x = 0, f = 1, x2 = 0, cnt = 0, i = 0; ptf("%s", n.c_str()); char c = gtc(); while(c < '0' || c > '9'){ if(c == '-') f = -1; c = gtc(); } while(c >= '0' && c <= '9'){ x = x * 10 + c - 48; c = gtc(); } c = gtc(); while(c >= '0' && c <= '9'){ x2 = x2 * 10 + c - 48; cnt++; c = gtc(); } for(; i < cnt; i++) x2 /= 10.0; return (x + x2) * f; } inline void write(int n) { if(n < 0){ ptc('-'); n = -n; } if(n > 9) write(n / 10); ptc(n % 10 + '0'); return; } inline void print(float n){ ptf("%.12lf\n", n); return; } int n = read(""), sum; inline void Main(){ for(int i = 0; i < n; i++) if(i / 10 - 7 && i % 10 - 7 && i % 7) sum += i * i; write(sum); return; } signed main(signed argc, char **argv){ Main(); ptc('\n'); return 0; }
信息
- ID
- 970
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 4
- 标签
- 递交数
- 391
- 已通过
- 187
- 上传者