列表

详情


NC22745. 听说你想成为六学家

描述

2018年六学文化风靡网络,羽姐姐沉迷于此,把和男朋友约会的时间都用来研究六学了。

这一天他看见小西与小理正在比赛,于是想给他们出道题,检验他们是否能算得上一个合格的六学家。

羽姐姐会给他们一个数字,要求他们求出区间[1,n]中有多少个数字中含有6,看谁能最快的找出来。

小西,小理:明明我没想成为六学家的说

输入描述

输入多组数据,每组数据包含一个整数n(n<=100)

输出描述

对于每组数据输出小于等于n的数字中有多少个数字中含有'6',每组输出占一行

示例1

输入:

5

输出:

0

示例2

输入:

7

输出:

1

示例3

输入:

33

输出:

3

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 1ms, 内存消耗: 368K, 提交时间: 2020-04-11 10:07:10

#include<stdio.h>
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF){
            int t=0;
        for(int i=1;i<=n;i++){
            if(i%10==6||i/10==6){
                t++;
            }
        }
        printf("%d\n",t);
    }
}

pypy3(pypy3.6.1) 解法, 执行用时: 73ms, 内存消耗: 18520K, 提交时间: 2020-04-19 23:11:28

ans = [0]
for i in range(1, 101) :
    ans.append(ans[-1] + (1 if '6' in str(i) else 0))

while True :
    try :
        n = int(input())
        print(ans[n])
    except :
        break

C(clang 3.9) 解法, 执行用时: 2ms, 内存消耗: 236K, 提交时间: 2020-02-14 15:17:03

#include<stdio.h>
int main(){
    int n,p=0,i;
    while(~scanf("%d",&n)){
    	for(i=6;i<=n;i++){
    		if(i%10==6||i/10==6)
    		p++;
		}
		printf("%d\n",p);
		p=0;
	}
	return 0;
}

C++ 解法, 执行用时: 2ms, 内存消耗: 312K, 提交时间: 2021-12-23 17:39:44

#include<iostream>
using namespace std;
int main() {
    int t;
    while(cin >> t)
    cout << t/10+(t%10>=6)+min(10,t-59)*(t>=60)-(t>=66) << endl;
}

上一题