【百日刷题计划 第二天】——熟悉语法 语法基础题

💥前言

        ☀️大家好☀️,我是烧蔬菜😁,最近做算法题可以感受到自己确实有点懈怠了😐,所以给自己定一个百日刷题计划,希望自己可以一直坚持下去💪,每天做题,也把题题解写下,记录自己每天的做题痕迹来激励提升自己获取正反馈✊,并且与大家分享下去😁

😉解题报告

💥一.[NOIP2002 普及组] 级数求和 biu~

☘️ 题目描述☘️

        已知: S n = 1 + 1 2 + 1 3 + … + 1 n S_n= 1+\frac{1}{2}+\frac{1}{3}+…+\frac{1}{n} Sn=1+21+31++n1。显然对于任意一个整数 k k k n n n 足够大的时候, S n > k \textcolor{#FF0000}{S_n>k} Sn>k

        现给出一个整数 k k k,要求计算出一个最小的 n n n,使得 S n > k \textcolor{#FF0000}{S_n>k} Sn>k

        输入格式
        一个正整数 k \textcolor{#FF0000}{k} k

        输出格式
        一个正整数 n \textcolor{#FF0000}{n} n

🤔一、思路:

        (1)当 S n > k S_n>k Sn>k,输出当前 n n n的值,
        (2) S n S_n Sn是以 n n n做为分母的累加值
        (3) k k k是从键盘输入的一个值

😎二、源码:

#include <iostream>
using namespace std;
int k;
int n = 0;
double s = 0;

int main() {
	cin >> k;
	
	while (k > s) {				//(1)
		n += 1;					//(2)
		s += 1.0 / n;			//(3)
	}
	cout << n;
	return 0;
}

😮三、代码分析:

        (1)若 k > s k>s k>s进行循环;
        (2) n n n做为分母,每次循环累加一次;
        (3)累加,整数除法运算结果,先去尾,再转换为浮点;

💥二.[NOIP2013 普及组] 计数问题biu~

☘️ 题目描述☘️

        试计算在区间 1 1 1 n n n 的所有整数中,数字 x x x 0 ≤ x ≤ 9 0\le x\le9 0x9共出现了多少次

        例如,在 1 1 1 11 11 11 中,即在 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 1,2,3,4,5,6,7,8,9,10,11 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 1 1 出现了 4 4 4 次。

        输入格式

         2 2 2 个整数 n , x n,x n,x,之间用一个空格隔开。

        输出格式

         1 1 1 个整数,表示 x x x 出现的次数。

        样例 1

         样例输入 11 1

         样例输出 4

🤔一、思路:

        (1)计算 1 1 1 n n n中所有数字明面上出现的 x x x的次数

😎二、源码:

#include <iostream>
using namespace std;
int n, x;
int ret = 0;
int digit;
int temp;

int main() {
	cin >> n >> x;

	for (int i = 1; i <= n; i++) {					//(1)
		temp = i;
		
		while (temp % 10 || temp / 10) {			//(2)
			digit = temp % 10;						//(3)						
			temp = temp / 10;						//(4)
			
			if (digit == x) {						//(5)
				ret++;
			}
			
		}
	}
	cout << ret << endl;
	return 0;
}

😮三、代码分析:

        (1)循环 1 1 1 n n n次,并将当前数值临时保存;
        (2)若 t e m p temp temp取不到位数,而且 t e m p temp temp没有可以消去的数位,结束循环;
        (3)取最后一位位数
        (4)消去最后一位位数
        (5)若与 x x x相同,进行计数

🤗 鸡汤来咯:

        时间就是速度,时间就是力量。在这里插入图片描述

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值