1970 - 计算与7无关的数

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数。现求所有小于等于n(n<100)的与7无关的正整数的平方和。

题目输入

小于100的正整数

题目输出

小于输入的正整数的与7无关的数的平方和

输入/输出样例

输入格式

20

输出格式

2336

C语言解答

#include<stdio.h>
int main(){
    int count= 0,n;
    scanf("%d",&n);
    do{if(n%7 !=0 && (n%10)!=7 && (n/10)!=7) count += n*n;}while(n--);
    printf("%d",count);
    return 0;
}

C++解答

#include <iostream>
#include <stdio.h>

using namespace std;
bool isrelat(int a){
	if(a % 7 == 0)return 1;
	while(a > 0){
		if(a % 10 == 7){
			return 1;
		}
		else{
			a /= 10;
		}
	}
	return 0;
}
int main(){
	int n;
	scanf("%d",&n);
	int sum = 0;
	for(int i = 1; i <= n; i++){
		if(!isrelat(i)){
			sum += i * i;
		}
	}
	printf("%d\n",sum);
	return 0;
}

Java解答

import java.util.Scanner;
/**
 *
 * @author zhenghan33
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner cin=new Scanner(System.in);
        int n=cin.nextInt();
        int sum=0;
        for(int i=1;i<=n;++i)
           if(!relateToSeven(i))
               sum+=i*i;
        System.out.println(sum);
    }
    private static boolean relateToSeven(int n)
    {
        if(n%7==0)
            return true;
        String s=String.valueOf(n);
        for(int i=0;i<s.length();++i)
        {
            if(s.substring(i,i+1).equals("7"))
                return true;
        }
        return false;
    }

}