zoukankan      html  css  js  c++  java
  • 51nod 1082 与7无关的数

    题目来源: 有道难题
    基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
     收藏
     关注
    一个正整数,如果它能被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示例
    5
    4
    5
    6
    7
    8
    Output示例
    30
    55
    91
    91
    155

    题意:

    思路:暴力大法!!!


    #include<stdio.h>
    #include<string.h>
    #define N  1000009
    bool B[N];
    __int64 num[N];
    void hehe()
    {
        __int64 i,j,k,m;
        for(i=7;i<N;i+=7)//7的倍数
        B[i]=true;
        for(i=1;i<N;i*=10)//数位上含7的数
        {
            m=i*10;
            for(j=i*7;j<N;j+=m)
            {
                for(k=0;k<i;k++)
                B[k+j]=true;
    
    
            }
    
        }
        num[0]=0;
        num[1]=1;
        for(i=2;i<N;i++)
           {
    
               if(!B[i])
               num[i]=num[i-1]+i*i;
               else
               num[i]=num[i-1];
           }
    }
    int main()
    {
        __int64 t,n;
        //freopen("Input.txt","w",stdout);
        scanf("%I64d",&t);
        memset(B,0,sizeof(B));
        hehe();
       while(t--)
        {
            scanf("%I64d",&n);
            printf("%I64d
    ",num[n]);
    
        }
    }









  • 相关阅读:
    原生js 实现 map
    前端安全学习
    前端性能优化
    前端的跨域请求方法使用场景及各自的局限性
    7-7 12-24小时制(15 分)
    7-4 BCD解密(10 分)
    7-2 然后是几点(15 分)
    厘米换算英尺英寸
    鸡兔同笼
    数组:经典计数
  • 原文地址:https://www.cnblogs.com/bryce1010/p/9387302.html
Copyright © 2011-2022 走看看