0
#include
#include
int re7num(int num){
if(0==num%7)return 1;
while(num>0){
if(num%10==7)return 1;
num/=10;
}
return 0;
}
int main(){
int num;
int sum;
while(scanf("%d",&num)!=EOF){
sum=0;
for(int i=1;i<=num;i++){
if(!re7num(i))sum+=pow(i,2);
}
printf("%d\n",sum);
}
return 0;
}
发表于 2017-02-07 17:28:05
回复(0)
更多回答
9
python solution: while True:
try:
res = 0
for i in range(1, int(input()) + 1):
if "7" not in str(i) and i % 7 != 0:
res += i ** 2
print(res)
except:
break
发表于 2017-09-08 11:03:56
回复(0)
5
规定了n<100不要太简单 using namespace std;
bool judge(int n){
if(n % 7 == 0)
return false;
if(n % 10 == 7)
return false;
if(n / 10 == 7)
return false;
return true;
}
int main(){
int n;
while(cin >> n){
int ret = 0;
for(int i = 1; i <= n; i++){
if(judge(i)){
ret = ret + i * i;
}
}
cout << ret << endl;
}
return 0;
}
发表于 2019-03-13 17:12:35
回复(1)
3
一行,多了我不要 try:
while True:
print(sum(map(lambda x:x**2,filter(lambda x:x%7!=0 and str(x).find('7')==-1, range(1,int(input())+1)))))
except Exception:
pass
编辑于 2018-10-04 11:19:40
回复(0)
2
注意审题:本题最后求得是与7无关的数的平方和
#include
(720)#include
using namespace std;
int isRelevant(int n) {
if (n % 7 == 0) {
return 0;
}
else {
while (n != 0) {
if (n % 10 == 7) {
return 0;
}
n /= 10;
}
return -1;
}
}
int main() {
int n, ret,sum;
while (scanf("%d", &n) != EOF) {
sum = 0;
for (int i = 1; i <= n; i++) {
ret = isRelevant(i);
if (ret == -1) {
sum += i * i;
}
}
printf("%d\n", sum);
}
return 0;
}
发表于 2020-02-23 23:58:58
回复(0)
2
看到 咖喱的cuy 大佬的解答受益匪浅,仿照思路先写判断函数judge再穷举 #include
#include
using namespace std;
bool judge(int x){
if((x%7!=0)&&(x%10!=7)&&(x/10!=7)){
return true;
}
else{
return false;
}
}
int main(){
int S = 0;
int n;
while(cin>>n){
for(int i=1; i<=n; i++){
if(judge(i)){
S += i*i;
}
}
cout<
}
return 0;
}
发表于 2020-02-01 11:45:05
回复(0)
3
#include
#include
using namespace std;
const int maxn = 101;
int num[maxn]; // 记录和
int main()
{
// 空间换时间
num[0] = 0;
num[1] = 1;
for(int i = 2; i < 100; ++i)
{
/**
1.不能被7整除
2.个位不为7
3.十位不为7
*/
if(i % 7 != 0 && (i%10) != 7 && (i/10) != 7)
{
num[i] = num[i-1] + i*i;
}
else
{
num[i] = num[i-1];
}
}
int n;
while(cin >> n)
{
cout << num[n] << endl;
}
return 0;
}
发表于 2016-08-09 14:01:49
回复(0)
1
下列算法可以适用于任意n值,不局限于两位数。
#include
#include
using namespace std;
int isnumber(int x){
if(x%7==0){//若x可被7整除,返回0值;
return 0;}
else {
int digit,j=x;
while(j!=0){
digit=j%10;//取最低位数值
if(digit!=7){
j=j/10;//若最低位数值不为7,令j为高位,再循坏取j的最低位数值。
}
else {
return 0;//若某一位上数值为7,返回0;
}
}
return x*x;//所有位上的数都不为7,返回x的平方;
}
}
int main(){
int i,n,sum=0;
scanf("%d",&n);
for(i=1;i<=n;++i){
sum+=isnumber(i);
}
printf("%d",sum);
return 0;
}
编辑于 2021-01-12 14:29:28
回复(0)
1
#include
int Not7(int x){
if((x/10==7)||(x%10==7)||(x%7==0))
return 1;
else
return 0;
}
int main(){
int n;
while(scanf("%d",&n)!=EOF){
int sum=0;
for(n;n>0;n--){
if(!Not7(n))
sum += (n*n);
}
printf("%d",sum);
}
}
发表于 2020-04-24 13:13:12
回复(0)
1
#include
int main()
{
int i,n,sum=0;
scanf("%d",&n);
for(i=0;i<=n;i++)//0-n
if(i%7!=0&&i%10!=7&&i/10!=7)
sum+=i*i;
printf("%d",sum);
}
发表于 2020-04-01 21:23:34
回复(0)
1
Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int sum=0;
for (int i = 1; i <= n; i++)
if (!(String.valueOf(i).contains("7") || i % 7 == 0)) sum+= i*i;
System.out.println(sum);
}
}
发表于 2020-03-18 15:27:25
回复(0)
1
该代码不只限于<100 #include
using namespace std;
int main(){
int n,j,sum;
bool flag;
while(cin>>n){
sum=0;
for(int i=1;i<=n;i++){
j=i;
flag=true;
if(i%7!=0) {
while(j!=0){
j=j%10;
if(j==7){
flag=false;
break;
}
j=j/10;
}
if(flag) sum+=i*i;
}
}
cout<
}
return 0;
}
发表于 2020-03-02 19:41:45
回复(0)
1
先加非7倍数的平方和,再减个位和十位为7的数平方和,注意既是7的倍数,也是个位数为7的数(7)
#include
#include
using namespace std;
int main() {
int n;
cin >> n;
int sum = 0;
for (int i = 1; i <= n; i++) {
if ((i % 7 != 0))
sum += i*i;
if (i % 10 == 7&&i>7)
sum -= i*i;
if (i / 10 == 7)
sum -= i*i;
}
cout <
return 0;
}
发表于 2020-02-15 22:48:23
回复(0)
1
#include
int main(){
int n,a[101]={0};
while(scanf("%d",&n)!=EOF){
for(int i=0;i<=n;i++)
if((i/10) != 7 && (i%10) != 7 && (i%7) != 0)
a[i]=i*i;
for(int i=0;i<=n;i++)
if(a[i]!=0)
a[n+1]=a[n+1]+a[i];
printf("%d",a[n+1]);
}
return 0;
}
发表于 2019-03-02 12:19:30
回复(0)
1
#include
#include
using namespace std;
int notRelated(int i){
if(i%7==0)
return 0;
else if(i==7||i/10==7||(i-i/10*10)==7)
return 0;
return 1;
}
int main(){
int n;
cin>>n;
int sum = 0;
for(int i = 1;i <= n;i ++){
if(notRelated(i))
sum += i*i;
}
cout<
return 0;
}
发表于 2019-02-28 22:02:12
回复(0)
1
思路很清晰,因为限制了范围,所以与7相关的只用考虑十位为7,个位为7和被7整除,在judge函数中进行验证,都不满足则返回0,表示与7无关。
#include
using namespace std;
bool judge(int i){
if(i/10==7)
return 1;
if(i%10==7)
return 1;
if(i%7==0)
return 1;
return 0;
}
int main(){
int n;
while(cin>>n){
int total=0;
for(int i=1;i<=n;i++){
if(!judge(i))
total+=i*i;
}
cout<
}
}
发表于 2019-02-07 20:16:16
回复(1)
1
#define _CRT_SECURE_NO_WARNINGS
#include
#include
using namespace std;
/*
一个正整数,
如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7, 则称其为与7相关的数.
现求所有小于等于n(n<100)的与7无关的正整数的平方和。
*/
int main()
{
int n;
while (cin>>n)
{
int sum = 0;
for (int i = 1; i <= n; i++)
{
int flg = 0;
if (i % 7 == 0)
{
flg = 1;
}
int t = i;
while (t!=0)
{
int per = t % 10;
t /= 10;
if (per == 7)
{
flg = 1;
break;
}
}
if (flg == 0)
{
sum += i*i;
}
}
cout << sum << endl;
}
return 0;
}
编辑于 2018-03-19 15:50:59
回复(1)
1
#include
#include
int main(){
int sum=0;
int n;
int a[100];
int size=0;
while(scanf("%d",&n)!=EOF){
for(int i=1;i<=n;i++){
if(i%10!=7&&i/10!=7&&i%7!=0){
a[size++]=pow(i,2);
}
}
for(int j=0;j
sum+=a[j];
}
printf("%d\n",sum);
}
return 0;
}
发表于 2019-03-14 17:49:40
回复(0)
1
#include
#include
using namespace std;
bool isRelatedWithSeven(int n){
while(n>0){
if(n%7==0||n%10==7){
return true;
}
n/=10;
}
return false;
}
int main(){
vector list;
for(int i=1;i<100;i++){
if(!isRelatedWithSeven(i)){
list.push_back(i);
}
}
int n;
while(scanf("%d",&n)!=EOF){
int result=0;
for(int i=0;i<=n;i++){
if(list[i]>n)
break;
result+=list[i]*list[i];
}
printf("%d\n",result);
}
return 0;
}
发表于 2016-10-25 23:23:11
回复(0)
0
#include
using namespace std;
bool Judge7(int x) {
if((x %= 10) == 7){ return true;}
if(x/10 ==7) return true;
else return false;
}
int main(){
int n;
cin >> n;
int sum = 0;
for(int i = 0; i <= n; i++){
if(i % 7 != 0 && (Judge7(i)==false)){
sum += i*i ;
}
}
cout << sum << endl;
return 0;
}
发表于 2021-01-28 11:49:55
回复(0)
0
#include
int main()
{
int n = 0;
int i = 0;
int sum = 0;
scanf("%d", &n);
if(n <= 0 || n >= 100)
return -1;
for(i = 1; i <= n; i++)
{
if(i % 7 != 0 && i % 10 != 7 && i / 10 != 7)
sum += i * i;
}
printf("%d\n", sum);
return 0;
}
发表于 2021-01-26 14:52:19
回复(0)