8 条题解

  • 2
    @ 2024-12-20 22:11:17

    题解

    不难看出,此题无疑是一道水爆了的题,缘由在于其数据范围(n<100)( n < 100 )。 因此,我们仅需将ii的三个数位一次性分离出来并直接判断是否三位均不等于77即可。 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
    上传者