当前位置: 首页 > news >正文

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

文章目录

  • 💥前言
  • 😉解题报告
    • 💥 [NOIP2011 普及组] 数字反转[biu~](https://www.luogu.com.cn/problem/P1307)
      • 🤔一、思路:
      • 😎二、源码:
      • 😮三、代码分析:
    • 💥 [NOIP1999 普及组] Cantor 表[biu~](https://www.luogu.com.cn/problem/P1014)
      • 🤔一、思路:
      • 😎二、源码:
      • 😮三、代码分析:
  • 🤗 鸡汤来咯:

💥前言

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

😉解题报告

💥 [NOIP2011 普及组] 数字反转biu~

☘️ 题目描述☘️

        给定一个整数 N N N,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2)。

        输入格式
        一个整数 N N N

        输出格式
        一个整数,表示反转后的新数。

        样例 1
        样例输入 1
        123
        样例输出 1
        321

        样例 2
        样例输入 2
        -380
        样例输出 2
        -83

🤔一、思路:

        (1)反转数除非本身是 0 0 0,否则最高位不得为 0 0 0
        (2)负号原地不动,罚站.ing

😎二、源码:

#include <iostream>
using namespace std;
int n;
string ret;								//(1)
int flag = 0;							//(2)

int main() {
	cin >> n;
	
	if (n < 0) {						//(3)
		ret += '-';
		n *= -1;
	}
	if (n == 0) {						//(4)
		ret += '0';
	}
	
	while (n) {							//(5)即n % 10 || n / 10
		if (n % 10 || flag) {			//(6)
			ret += n % 10 + 48;
			flag = 1;					
		} else {
		}
		n /= 10;						//(7)
	}
	cout << ret;
	return 0;
}

😮三、代码分析:

        (1)创建一个字符串类型,方便存储反转后的数字
        (2)判断反转后最高位,即第一位数是否为 0 0 0
        (3)若输入负整数,将负号存入 r e t ret ret内,并将负整数变为正整数
        (4)若输入整数为 0 0 0,则将 0 0 0存入 r e t ret ret,之后输出;
        (5) n n n的位数没除尽则进行循环
        (6)当前位数与 f l a g flag flag都为 0 0 0时,不会存入 r e t ret ret
        (7)消去一位

💥 [NOIP1999 普及组] Cantor 表biu~

☘️ 题目描述☘️

        现代数学的著名证明之一是 Georg Cantor 证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:
1 / 1 1/1 1/1 , 1 / 2 1/2 1/2 , 1 / 3 1/3 1/3 , 1 / 4 1/4 1/4, 1 / 5 1/5 1/5, …
2 / 1 2/1 2/1, 2 / 2 2/2 2/2 , 2 / 3 2/3 2/3, 2 / 4 2/4 2/4, …
3 / 1 3/1 3/1 , 3 / 2 3/2 3/2, 3 / 3 3/3 3/3, …
4 / 1 4/1 4/1, 4 / 2 4/2 4/2, …
5 / 1 5/1 5/1, …


        我们以 Z 字形给上表的每一项编号。第一项是 1 / 1 1/1 1/1,然后是 1 / 2 1/2 1/2 2 / 1 2/1 2/1 3 / 1 3/1 3/1 2 / 2 2/2 2/2,…

        输入格式
        整数 N N N 1 ≤ N ≤ 1 0 7 1 \leq N \leq 10^7 1N107)。

        输出格式
        表中的第 N N N 项。

        样例 1
        样例输入 1
        7
        样例输出 1
        1/4

🤔一、思路:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
        (1)可以得出规律:
                1)行数与该行拥有数字的数量一致,并依次递增,可知第 N N N项数在图中第几行的,第几位
                2)奇偶行分子分母位置相反,可用 i f if if语句进行判断

😎二、源码:

#include <iostream>
using namespace std;
int x, y;						//(1)
int n;							//(2)
int row = 1;					//(3)
int shift;						//(4)

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

	while (n > row) {			//(5)
		n -= row;
		row++;
	}
	shift = n;					
	if (row % 2) { //奇数		//(6)
		x = row - shift + 1;
		y = shift;
		printf("%d/%d", x, y);
	} else {	   //偶数
		x = shift;
		y = row - shift + 1;
		printf("%d/%d", x, y);
	}
	return 0;
}

😮三、代码分析:

        (1)分子,分母
        (2)第n项数
        (3)行
        (4)移动数
        (5)若 n > r o w n>row n>row,则寻找 n n n所在 r o w row row
        (6)判断所在行是奇数还是偶数,分子与分母在所在行的位置上移动 s h i f t shift shift r o w − s h i f t + 1 row-shift+1 rowshift+1

🤗 鸡汤来咯:

        生活就像海洋,只有意志坚强的人,才能到达彼岸在这里插入图片描述

相关文章:

  • 【Vue】初识Vue,Vue简介及Vue Devtools配置
  • 【云计算 | OpenStack】在无法网络访问的情况下,如何在KVM虚机和宿主机之间互传文件
  • java毕业设计演出票在线预定网站系统Mybatis+系统+数据库+调试部署
  • 多线程同步-信号量内核对象
  • SpringBoot+Vue实现前后端分离教学评价系统
  • 【漏洞复现-phpmyadmin-文件包含】CVE-2014-8959
  • 用于交通预测的时空交互动态图卷积网络
  • 【尚学堂】超火爆的Java游戏羊了个羊_java开发游戏项目
  • 【DDR3 控制器设计】(2)DDR3 初始化测试
  • 数据结构之树2
  • 微信小程序开发实战9_1 生成小程序码
  • Informer时序模型(代码解析)
  • CAN协议解析
  • 转置卷积详解(原理+实验)
  • ES字符串从任意位置模糊查询(支持只匹配含连续字符串内容)
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 2017 年终总结 —— 在路上
  • CAP 一致性协议及应用解析
  • CAP理论的例子讲解
  • ESLint简单操作
  • Js基础——数据类型之Null和Undefined
  • leetcode讲解--894. All Possible Full Binary Trees
  • markdown编辑器简评
  • PHP那些事儿
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • Vue.js 移动端适配之 vw 解决方案
  • vue中实现单选
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 机器学习学习笔记一
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 前端自动化解决方案
  • 全栈开发——Linux
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 追踪解析 FutureTask 源码
  • 1.Ext JS 建立web开发工程
  • linux 淘宝开源监控工具tsar
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​iOS实时查看App运行日志
  • ​linux启动进程的方式
  • # C++之functional库用法整理
  • #每日一题合集#牛客JZ23-JZ33
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (1)(1.13) SiK无线电高级配置(六)
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (万字长文)Spring的核心知识尽揽其中
  • (一)Java算法:二分查找
  • (转载)Google Chrome调试JS
  • (转载)hibernate缓存
  • . NET自动找可写目录