【C语言】与7无关的正整数平方和

         输入一个数n(n>0),求从1~n中与7无关的正整数的平方和。

        提示:所谓与7有关的正整数就是该数的某一位上的数为7或者该数能被7整除

        代码思路:利用拆数算法,判断某个数的每一位是不是不为7,然后再判断该数能不能被7整除。

        我们先来回顾一下拆数算法是怎么拆的:

#include<stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    /*
        n=n/10是为了去除上一次循环已经输出
        过的个位,下一层循环又是新的个位
    */
    for(;n>0;n=n/10){
        //n%10就是取到了该数的个位
        printf("%d ",n%10);
    }
    return 0;
}

这个算法我们可以应用到本题中来判断某个正整数中是否某位上是7

那么现在我们可以把算法的大致思路理清楚了。

外层遍历循环(从1~n),内层拆数算法判断是否有7+判断是否被7整除,然后如果这个数二者都不满足,那就进行平方和操作

现在上代码

#include<stdio.h>
int main(){
    //isseven是判断这个数是否含有7
    int n,i,sum=0,isseven=0,j;
    scanf("%d",&n);
    for(i=n;i>0;i--){
        //判断该数是否与7有关:被7整除或者位数上有7
        for(j=i;j>0;j=j/10){
            if(j%10==7){
                //记录含有7
                isseven=1;
                //跳出循环
                break;
            }
        }
        //双重判断,如果二者不满足就执行平方和操作
        if(i%7!=0&&isseven!=1){
            sum+=i*i;
        }
        isseven=0;
    }
    //输出结果
    printf("%d",sum);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

君莫愁。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值