Day2 洛谷1035+1047+1085+1089+1150+1151

零基础洛谷刷题记录

Day1 2024.11.18

Day2 2024.11.25


文章目录


级数求和

1035:题目描述

已知:Sn=1+1/2+1/3+...+1/n。显然对于任意一个整数 k,当 n 足够大的时候,Sn>k。现给出一个整数 k,要求计算出一个最小的 n,使得 Sn>k

1035:解答代码

c 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int k;
	scanf("%d", &k);
	double sum = 1;
	int i = 2;
	while (sum <= k)
	{
		sum += (1.0 / i);
		i++;
	}
	printf("%d", i - 1);
	return 0;
}

1035:学习成果

  • 整数相除
c 复制代码
7/2=3
7%2=1
  • 浮点数相除
c 复制代码
#include<stdio.h>
int main()
{
    float a = 7.0 / 2;
    printf("%f\n", a);
        return 0;
}

校门外的树

1047:题目描述(成功写出)

某校大门外长度为 l 的马路上有一排树,每两棵相邻的树之间的间隔都是 1 米。我们可以把马路看成一个数轴,马路的一端在数轴 0 的位置,另一端在 l 的位置;数轴上的每个整数0,1,2,...,l,都种有一棵树。

由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。

1047:解答代码

c 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int length;
	int number;
	scanf("%d %d", &length, &number);
	int all = length + 1;

	int arr[10000];

	for (int j = 0; j <= length; j++)
	{
		arr[j] = 1;
	}
	for (int i = 0; i < number; i++)
	{
		int  left;
		int right;
		scanf("%d %d", &left, &right);

		for (int j = left; j <= right; j++)
		{
			arr[j] = 0;
		}
	}
	int answer = 0;
	for (int j = 0; j <= length; j++)
	{
		if (arr[j] == 1)
		{
			answer++;
		}
	}
	printf("%d\n", answer);
	return 0;
}

1047:学习成果

  • 成功想出标记的思路,非常好

不高兴的津津

1085:题目描述(成功写出)

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴

1085:解答代码·

c 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int sum = 0;
	int max = 0;
	int day = 1;
	int school;
	int mother;

	for (int i = 1; i < 8; i++)
	{
		scanf("%d %d", &school, &mother);
		sum = school + mother;
		if (sum > max)
		{
			max = sum;
			day = i;
		}
	}
	if (max <= 8)
	{
		day = 0;
	}
	printf("%d\n", day);
	return 0;
}

1085:学习成果

  • 利用逐项比较的方式得到答案

津津的储蓄计划

1089:题目描述(成功写出)

津津的零花钱一直都是自己管理。每个月的月初妈妈给津津 300 元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。

为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上 20% 还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于 100 元或恰好 100 元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。

例如 11月初津津手中还有 83 元,妈妈给了津津 300 元。津津预计11月的花销是 180 元,那么她就会在妈妈那里存 200 元,自己留下 183 元。到了 11 月月末,津津手中会剩下 3 元钱。

津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。

现在请你根据 2004 年 1 月到 12 月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到 2004 年年末,妈妈将津津平常存的钱加上 20% 还给津津之后,津津手中会有多少钱。

1089:解答代码

c 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int addtion = 0;
	int hand = 0;
	int deposit = 0;
	int number = 0;

	for (int i = 1; i < 13; i++)
	{
		hand += 300;
		int budget;
		scanf("%d", &budget);

		if (hand < budget)
		{
			printf("-%d\n", i);
			return 0;
		}
		addtion = hand - budget;
		if (addtion >= 100)
		{
			number = addtion / 100;
			deposit += number * 100;
			hand = hand - number * 100;
		}
		hand = hand - budget;
	}

	int out = deposit * 1.2 + hand;
	printf("%d\n", out);

	return 0;
}

1089:学习成果

  • 思路清晰即可

prter的烟

1150:题目描述(成功写出)

Peter 有 n 根烟,他每吸完一根烟就把烟蒂保存起来,k(k>1)个烟蒂可以换一个新的烟,那么 Peter 最终能吸到多少根烟呢?

1150:解题代码

c 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int remain = 0;
	int n;
	int k;
	scanf("%d %d", &n, &k);
	int all = n;

	remain += n;
	while (remain >= k)
	{
		int i = remain / k;
		int j = remain % k;
		remain = j + i;
		all += i;
	}
	printf("%d\n", all);
	return 0;
}

1150:学习成果

  • 逻辑清晰即可

子树整数

1151:题目描述(成功写出)

现在给定一个正整数 K,要求你编程求出 10000 到 30000 之间所有满足下述条件的五位数,条件是这些五位数的三个子数 sub 1,sub 2 ,sub 3 都可被 K 整除。

1151:解题代码

c 复制代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>

int main()
{
	int k;
	scanf("%d", &k);
	int tag = 0;

	for (int i = 10000; i <= 30000; i++)
	{
		int num1 = i / 100;
		int num2 = i % 1000;
		int num3 = (i / 10) % 1000;
		if (num1 % k == 0 && num2 % k == 0 && num3 % k == 0)
		{
			printf("%d\n", i);
			tag = 1;
		}
	}
	if (tag == 0)
	{
		printf("No\n");
	}
	return 0;
}

1151:学习成果

  • 逻辑清晰即可

总结

相关推荐
Jerry34 分钟前
LeetCode 459. 重复的子字符串
算法
海石3 小时前
1500分的题目,确实有实力,不过还是我略胜一筹
算法·leetcode
海石3 小时前
【记忆化搜索】条条大路通AC,走好适合你的那一条,走到后再考虑走得快
算法·leetcode
Jerry5 小时前
LeetCode 151. 反转字符串中的单词
算法
gugucoding6 小时前
31. 【C语言】堆栈与队列的实现
c语言·开发语言·数据结构·链表
ChaoZiLL7 小时前
我的数据结构3——链表(link list)
数据结构·链表
a1117768 小时前
LM 算法迭代过程动画演示(SLAM)
算法
头茬韭菜8 小时前
Context 的生死抉择:四层压缩、截断算法与 Session Memory
算法·ai
Jerry8 小时前
LeetCode 541. 反转字符串 II
算法
Jerry8 小时前
LeetCode 344. 反转字符串
算法