输入为一正整数 n,(n<100) 输出小于等于 n 的与 7 无关的正整数的平方和 示例 21 输出2336

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入为一正整数 n,(n<100) 输出小于等于 n 的与 7 无关的正整数的平方和 示例 21 输出2336相关的知识,希望对你有一定的参考价值。

#include<stdio.h>
int main()

int n,s,g,i,sum=0,d;
scanf("%d",&n);
if(n>=1&&n<=9)
g=n;
else if(n>=10&&n<=99)
s=n/10;
g=n%10;
for(i=1;i<=n;i++)
if(n%7!=0||s!=7||g!=7)
sum=sum+i*i;

printf("%d\n",sum);
return 0;


但是我我输入了21,但输出结果老出错,帮我看看程序错在哪里了

参考技术A #include "stdio.h"//
void main(void)
int n=120,i;
while(n>100)
printf("Type an integer of less 101\n");
scanf("%d",&n);

for(n++,i=1;i<n;i++)
if(!(i%7) || i%10==7 || i/10==7) continue;
printf("%d ",i*i);

printf("\n");
本回答被提问者和网友采纳
参考技术B #include<stdio.h>
int main()

int n,s,g,i,sum=0,d;
scanf("%d",&n);

for(i=1;i<=n;i++)

if(i>=1&&i<=9)

s =0;
g=i;

else if(i>=10&&i<=99)

s=i/10;
g=i%10;

if(i%7!=0&&s!=7&&g!=7)
sum=sum+i*i;

printf("%d\n",sum);
return 0;
参考技术C 除了||改成&&,还要把你的if else语句放到for里面追问

为啥要把||改为&& 而且把if放在for里面??

追答

每个数都要判断是否是7的倍数或者是否含有7,所以把if放在for语句里面。
||改成&&,因为要既不是7的倍数,也不含有7,就用逻辑与,也就是且,为而不是或

与7无关的数

题目描述

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

输入描述:

案例可能有多组。对于每个测试案例输入为一行,正整数n,(n<100)

输出描述:

对于每个测试案例输出一行,输出小于等于n的与7无关的正整数的平方和。
示例1

输入

复制
21

输出

复制
2336
注意某个位数上的数字为7函数的判断
#include<iostream>
using namespace std;
int fun(int m)
{
    int x ;
    while(m)
    {
        x = m%10;
        m = m/10;
        if(x==7)
            return 1;
    }
    return 0;
}
int main()
{
    int n;
    int sum;
    while(cin>>n)
    {
        sum = 0;
        for(int i=n;i>=1;i--)
        {
            if(i%7!=0&&fun(i)==false)
                sum+=i*i;
        }
        cout<<sum<<endl;
    }
    return 0;
}
/*
运行时间:8ms
占用内存:480k
*/

 


以上是关于输入为一正整数 n,(n<100) 输出小于等于 n 的与 7 无关的正整数的平方和 示例 21 输出2336的主要内容,如果未能解决你的问题,请参考以下文章

键盘输入小于10的正整数n,若输入超出范围,则重新输入,直到符合,计算并输出n!

与7无关的数

与7无关的数

与7无关的数

vb代码 计算1!+2!+3!+...+N!,N为随机一正整数 单击计算命名按钮commamd1,结

练习题 | 与7无关的数