问题标题: 酷町堂:1038

0
1
已解决
范皓翔
范皓翔
初级光能
初级光能

1038   与5相关的数

题目描述 Description

若一个正整数的十进制表示法中有一位为数字5,或者该正整数能够被5整除,则称这个数为与5相关的数。现给定一个正整数n,求不大于n的所有与5相关的数之和。

输入描述 Input Description

输入为一行,表示正整数n(0 < n < 100)

输出描述 Output Description

输出一行,包含一个整数,即小于等于n的所有与5相关的正整数之和。

样例输入 Sample Input

50

样例输出 Sample Output

275

请问这题代码为啥是62分:

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    int n,s=0;
    cin>>n;
    for(int i=1;i<=n;i++){
        if(i%5==0){
            s+=i;
        }
        else if(i%5==5){
            s+=i;
        }
    }
    cout<<s;
    return 0;
}

1038:与5相关的数

Wrong Answer:62分

范皓翔的测评结果:

测试点

结果

时间

 

1

Accepted

0ms

偷看一下数据

2

Accepted

0ms

偷看一下数据

3

Accepted

0ms

偷看一下数据

4

Wrong Answer

0ms

偷看一下数据

5

Wrong Answer

0ms

偷看一下数据

6

Wrong Answer

0ms

偷看一下数据

7

Accepted

0ms

偷看一下数据

8

Accepted

0ms

偷看一下数据


0
已采纳
王子健
王子健
初级天翼
初级天翼

这道题相对来说很简单,只需要一个for循环和一个if嵌套一下就行了

循环就不用说了,都会,就是从1到n

那我来说一下if判断吧:

1.若一个正整数的十进制表示法中有一位为数字5,这个不知道你会不会,如果要正常找的话是要while循环的,但这题不用,为什么呢?

请看:

证明输入的数只有1,2或者3位,所以只要这样判断一下:if(i%10==5||i/10%10==5||i/100%10==5||i%5==0)

然后把i加进ans中,最后输出ans就行了,望采纳,谢谢。

1
曹博扬
曹博扬
初级天翼
初级天翼

其他都对

把中间的循环改成:

for(int i=1;i<=n;i++){
    if(i%5==0||i/10==5)
        a+=i;
}

我试过了,可以AC

我要回答