51 nod 1082 与7无关的数

来源:互联网 发布:跳跃网络账号注册 编辑:程序博客网 时间:2024/06/02 03:31
一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数。求所有小于等于N的与7无关的正整数的平方和。
例如:N = 8,<= 8与7无关的数包括:1 2 3 4 5 6 8,平方和为:155。
Input
第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 1000)第2 - T + 1行:每行1个数N。(1 <= N <= 10^6)
Output
共T行,每行一个数,对应T个测试的计算结果。
Input示例
545678
Output示例
30559191

155

思路:

判断当前的是否符合题意,如果符合就加上,不符合就和之前的和是相等的。

#include<bits/stdc++.h>using namespace std;long long a[1000000+100];int check(int x){     if(x%7==0){        return 1;     }     while(x){        int t = x%10;        if(t==7){            return 1;        }        x=x/10;     }     return 0;}main(){     long long  T,n;     memset(a,0,sizeof(a));     scanf("%lld",&T);     for(long long i=1;i<=1000000+10;i++){//不知道为什么,int 就 w,long long 就可以        if(check(i)){           a[i]=a[i-1];        }        else{            a[i]=a[i-1]+i*i;        }     }     while(T--){        scanf("%lld",&n);        printf("%lld\n",a[n]);     }}

原创粉丝点击