首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【算法通关指南:C++编程篇(五) 】---- 条件判断与循环练习合集(下)

【算法通关指南:C++编程篇(五) 】---- 条件判断与循环练习合集(下)

作者头像
小龙报
发布2025-12-15 14:56:35
发布2025-12-15 14:56:35
1820
举报
文章被收录于专栏:C\C++C\C++

🔥小龙报:个人主页 🎬作者简介:C++研发,嵌入式,机器人方向学习者 ❄️个人专栏: 《算法通关指南》永远相信美好的事情即将发生

前言

本专栏聚焦算法题实战,系统讲解算法模块:以《c++编程》,《数据结构和算法》《基础算法》《算法实战》 等几个板块以题带点,讲解思路与代码实现,帮助大家快速提升代码能力 ps:本章节题目分两部分,比较基础笔者只附上代码供大家参考,其他的笔者会附上自己的思考和讲解,希望和大家一起努力见证自己的算法成长


一、 含k个3 的数

1.1题目链接 含k个3 的数

1.2题目解析

在这里插入图片描述
在这里插入图片描述

代码:

代码语言:javascript
复制
#include <iostream>
using namespace std;
typedef long long LL;
LL m,k;

int main()
{
	cin >> m >> k;

	int ret = 0;
	while (m)
	{
		if (m % 10 == 3)
			ret++;
		m /= 10;
	}

	if (ret == k)
		cout << "YES" << endl;
	else
		cout << "NO" << endl;
	return 0;
}

二、角谷猜想

2.1题目链接 : 角谷猜想

2.2题目解析

在这里插入图片描述
在这里插入图片描述

代码:

代码语言:javascript
复制
#include <iostream>
using namespace std;

int main()
{
	long long n;
	scanf("%lld", &n);

	while (n != 1)
	{

		if (n % 2 != 0)
		{
			printf("%lld*3+1=%lld\n", n,n * 3 + 1);
			n = n * 3 + 1;
		}
		else if(n % 2 == 0)
		{
			printf("%lld/2=%lld\n", n, n / 2);
			n /= 2;
		}
	}
	printf("End\n");
	return 0;
}

三、计算1~100之间3的倍数的数字之和

3.1题目链接:无

3.2题目解析

法一:

代码语言:javascript
复制
#include <iostream>
using namespace std;

int main()
{
	int sum = 0;

	for (int i = 1; i <= 100; i++)
	{
		if (i % 3 == 0)
			sum += i;
	}

	cout << sum << endl;
	return 0;
}

法二:

代码语言:javascript
复制
#include <iostream>
using namespace std;

int main()
{
	int sum = 0;

	for (int i = 3; i <= 100; i += 3)
			sum += i;

	cout << sum << endl;
	return 0;
}

四、平均年龄

4.1题目链接:平均年龄

4.2题目解析

在这里插入图片描述
在这里插入图片描述

代码:

代码语言:javascript
复制
#include <iostream>
using namespace std;
int main()
{
	int n;
	cin >> n;

	int sum = 0;
	for (int i = 1; i <= n; i++)
	{
		int x;
		cin >> x;
		sum += x;
	}
	double ret = sum * 1.0 / n;

	printf("%.2lf", ret);
	return 0;
}

五、奥运奖牌计数

5.1题目链接:奥运奖牌计数

5.2题目解析

在这里插入图片描述
在这里插入图片描述

代码:

代码语言:javascript
复制
#include<iostream>
using namespace std;
int main()
{
    int n;
    cin >> n;
    int a,b,c;
    int sum_a = 0;
    int sum_b = 0;
    int sum_c = 0;
    int sum = 0;
    for(int i = 0;i < n;i++)
    {
        cin >> a >> b >> c;
        sum_a += a;
        sum_b += b;
        sum_c += c;
    }
    sum = sum_a + sum_b + sum_c;
    cout << sum_a << " " << sum_b << " " << sum_c << " " << sum;
    return 0;
}

六、鸡尾酒疗法

6.1题目链接:鸡尾酒疗法

6.2题目解析

在这里插入图片描述
在这里插入图片描述

代码:

代码语言:javascript
复制
#include <iostream>
using namespace std;
int n;
int main()
{
	cin >> n;

	int a,b;
	cin >> a >> b;
	double x = (b * 1.0 / a) * 100;

	for (int i = 1; i < n; i++)
	{
		cin >> a >> b;
		double y = (b * 1.0 / a) * 100;
		if (y - x > 5)
			cout << "better" << endl;
		else if (x - y > 5)
			cout << "worse" << endl;
		else
			cout << "same" << endl;
	}
	return 0;
}

注:这道题要把握住两个相差,第二个if也可以使用绝对值函数abs(y - x)不能直接y - x否则会造成same和worse两个的判度的逻辑错误

七、计算分数加减表达式的值

7.1题目链接:计算分数加减表达式的值

7.2题目解析

在这里插入图片描述
在这里插入图片描述

代码:

代码语言:javascript
复制
#include <iostream>
using namespace std;

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

	double s  = 0;
	int fact = 1;
	for (int i = 1; i <= n; i++)
	{
		s += 1.0 / i * fact;
		fact *= -1;
	}

	printf("%.4lf", s);
	return 0;
}

八、求分数序列和

8.1题目链接:求分数序列和

8.2题目解析

在这里插入图片描述
在这里插入图片描述

代码:

代码语言:javascript
复制
#include <iostream>
using namespace std;

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

	int p = 1;
	int q = 2;
	double sum = 0;
	for (int i = 1; i <= n; i++)
	{
		sum += (q * 1.0/ p);
		q = q + p;
		p = q - p;
	}
	
	printf("%.4lf", sum);
	return 0;
}

九、输入个正整数,计算这个整数是⼏位数

9.1题目链接:无

9.2题目解析

代码语言:javascript
复制
#include <iostream>
using namespace std;

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

	int ans = 0;
	do
	{
		ans++;
		n /= 10;

	} while (n);
	cout << ans << endl;
	return 0;
}

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、 含k个3 的数
    • 1.1题目链接 含k个3 的数
    • 1.2题目解析
  • 二、角谷猜想
    • 2.1题目链接 : 角谷猜想
    • 2.2题目解析
  • 三、计算1~100之间3的倍数的数字之和
    • 3.1题目链接:无
    • 3.2题目解析
  • 四、平均年龄
    • 4.1题目链接:平均年龄
    • 4.2题目解析
  • 五、奥运奖牌计数
    • 5.1题目链接:奥运奖牌计数
    • 5.2题目解析
  • 六、鸡尾酒疗法
    • 6.1题目链接:鸡尾酒疗法
    • 6.2题目解析
  • 七、计算分数加减表达式的值
    • 7.1题目链接:计算分数加减表达式的值
    • 7.2题目解析
  • 八、求分数序列和
    • 8.1题目链接:求分数序列和
    • 8.2题目解析
  • 九、输入个正整数,计算这个整数是⼏位数
    • 9.1题目链接:无
    • 9.2题目解析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档