我是真的服气呀,搞了半天通不过,是因为for循环那里n没有加“=”号,被那个n<100搞糊涂了。
一个正整数,如果它能被 77 整除,或者它的十进制表示法中某一位上的数字为 77,则称其为与 77 相关的数。
现在小蒜蒜想求出所有小于等于 n(n < 100)n(n<100) 的与 77 无关的正整数的平方和。
输入格式
输入为一行,正整数 n(n < 100)n(n<100)。
输出格式
输出一行,包含一个整数,即小于等于 nn 的所有与 77 无关的正整数的平方和。
输出时每行末尾的多余空格,不影响答案正确性
样例输入复制
21
样例输出复制
2336
#include <iostream>
using namespace std;
int main()
{
int n;int sum=0;cin>>n;
for(int i=0;i<=n;i++){
if(i%7!=0 && i%10 !=7 && i/10 !=7){
sum+=i*i;
}
}
cout<<sum;
return 0;}
为此,还特意看了一下另一个小可爱的代码,才发现了自己的问题,但是我感觉没必要定义那两个变量呢,有点画蛇添足的感觉。
#include <iostream>
using namespace std;
int main()
{
int sum=0,g=0,s=0,i=1,n=0;//s是十位数字,g是个位数字
cin>>n;
for(i=1;i<=n;i++)
{
s=i/10;
g=i%10;
if(i%7!=0&&s!=7&&g!=7)//若这个数能被7整除且个位和十位数字都不为7
sum=sum+i*i;
}
cout<<sum;
return 0;
}