第11周项目6回文数


问题及代码:

/* 
*Copyright (c)2014,烟台大学计算机与控制工程学院 
*All rights reserved. 
*文件名称:isPalindrome.cpp 
*作    者:单昕昕 
*完成日期:2014年11月10日 
*版 本 号:v1.0 
* 
*问题描述:编制isPalindrome(),用于判断参数是否是回文数——回文数,即从前往后读和从后往前读都
一样的数,如1221和121都是回文数,而1231、123都不是回文数。
*程序输出:回文数。
*/  
#include <iostream>

using namespace std;

int isPalindrome(int y) ;
int main()
{
    int m;
    cout<<"请输入一个数"<<endl;
    cin>>m;
    if(isPalindrome(m)==m)
        cout<<m<<"是回文数,噢耶!"<<endl;
    else
        cout<<m<<"不是回文数。回文有什么好!"<<endl;
    return 0;
}
int isPalindrome(int y)  //函数只管求值,不管输出。输出由main函数完成
{
    int x,r;
    x=0;
    while(y>0)
    {
        r=y%10;
        x=x*10+r;
        y=y/10;
    }
    y=x;
    return (y);
}


 

运行结果:

 

 

知识点总结:

反序数的实现并判断。

 

学习心得:

只是比反序数多了一个判断的过程,就知道是不是回文数了。

<think> 我们为用户制定一个详细的学习计划,从零基础开始到通过TCS CodeVita初赛。TCS CodeVita初赛通常考察基础编程能力、基础数据结构和算法。计划时间约为3-4个月(从现在开始,假设比赛在学期末或下学期初)。 计划分为四个阶段: 第一阶段:编程基础(1个月) 第二阶段:数据结构与算法基础(1.5个月) 第三阶段:算法提升与竞赛技巧(1个月) 第四阶段:模拟实战(0.5个月) 每个阶段设定具体的学习目标和任务。 第一阶段:编程基础(第1-4) 目标:掌握一门编程语言(推荐Python),能够用该语言解决基础问题。 任务: 1. 选择Python作为入门语言(语法简单,适合竞赛)。 2. 学习基础语法:变量、数据类型、运算符、条件语句(if-else)、循环(for、while)、函数、列表、字符串、字典等。 3. 每天至少完成3道基础编程题(例如:计算两个数的和、求最大值、判断素数等)。 4. 学习资源:菜鸟教程、W3Schools、Codecademy的Python教程。 示例代码(判断素数): ```python def is_prime(n): if n < 2: return False for i in range(2, int(n**0.5)+1): if n % i == 0: return False return True print(is_prime(5)) # 输出True ``` 目标检测:第4末,能够独立完成20道基础编程题(如LeetCode或HackerRank上的简单题目)。 第二阶段:数据结构与算法基础(第5-10) 目标:掌握基础的数据结构和算法,包括数组、字符串、链表、栈、队列、树、排序、搜索、简单动态规划等。 任务: 1. 每学习1-2个数据结构或算法主题: - 第5:数组和字符串(双指针、滑动窗口等) - 第6:链表、栈、队列 - 第7:树(二叉树、二叉搜索树)和图(基础概念) - 第8:排序(冒泡、选择、插入、归并、快排)和搜索(二分查找) - 第9:递归、回溯 - 第10:动态规划(基础,如斐波那契、背包问题)和贪心算法(基础) 2. 每个主题学习后,完成至少5道相关题目(从简单到中等)。 3. 学习资源:《算法图解》、《数据结构与算法分析》基础部分、LeetCode探索卡片。 示例代码(二分查找): ```python def binary_search(arr, target): low, high = 0, len(arr) - 1 while low <= high: mid = (low + high) // 2 if arr[mid] == target: return mid elif arr[mid] < target: low = mid + 1 else: high = mid - 1 return -1 ``` 目标检测:第10末,能够独立解决LeetCode简单级别题目,部分中等题目。 第三阶段:算法提升与竞赛技巧(第11-14) 目标:提升解题能力,学习竞赛常见技巧,提高解题速度和代码调试能力。 任务: 1. 学习常见竞赛技巧:前缀和、位运算、DFS/BFS、树的遍历、堆、哈希表等。 2. 练习中等难度题目,重点训练解题思路和代码实现速度。 3. 每参加一次在线编程竞赛(如Codeforces Div.3或AtCoder Beginner Contest)。 4. 学习分析时间复杂度,优化代码。 示例题目(前缀和): 给定一个数组,多次查询区间和。预处理前缀和数组,使得每次查询时间复杂度为$O(1)$。 ```python def prefix_sum(arr): n = len(arr) prefix = [0] * (n+1) for i in range(1, n+1): prefix[i] = prefix[i-1] + arr[i-1] return prefix # 查询区间[l, r]的和(闭区间) def query(prefix, l, r): return prefix[r+1] - prefix[l] ``` 目标检测:第14末,能够在Codeforces Div.3或类似比赛中解决2-3题。 第四阶段:模拟实战(第15-16) 目标:模拟比赛环境,进行真题训练。 任务: 1. 收集TCS CodeVita历年真题(至少近3年),进行模拟考试(6小时限时)。 2. 分析真题考点,查漏补缺。 3. 训练策略:先易后难,保证通过题目的数量。 目标检测:完成3次模拟考试,每次至少解决2道题(初赛通常要求解决1-2道即可通过)。 总体目标: 1. 掌握Python编程语言,并能熟练编写代码。 2. 掌握基础数据结构和算法,能够解决中等难度以下的问题。 3. 熟悉竞赛环境,能够在规定时间内解决至少2道初赛题目。 注意事项: - 每天坚持编程,至少2小时。 - 做好笔记,记录常见错误和解题模板。 - 积极参与在线社区(如LeetCode讨论区、Stack Overflow)提问和讨论。 通过以上计划,无编程基础的大一新生可以逐步建立编程和算法能力,最终通过初赛。 根据上述计划,生成相关问题: </think> 以下是针对无编程基础的大一新生备战TCS CodeVita初赛的详细计划(期4个月),包含分阶段目标、核心任务和里程碑检测: ### 一、整体计划框架 ```mermaid gantt title TCS CodeVita初赛备战计划 dateFormat YYYY-MM-DD section 基础构建 语法基础 :active, des1, 2023-09-01, 30d 数据结构入门 : des2, after des1, 30d section 算法提升 核心算法训练 : des3, after des2, 45d 竞赛技巧培养 : des4, after des3, 15d section 实战冲刺 真题模拟 : des5, after des4, 30d ``` ### 二、分阶段详细计划 #### 阶段1:编程基础筑基(第1-4) **目标**: 1. 掌握Python基础语法(变量/分支/循环/函数) 2. 能独立解决$n \leq 10$的数值计算问题 3. 熟悉OJ平台操作 **核心任务**: ```python # 每日必做(2小时) 1. 完成Codecademy Python基础模块 ✅ 2. 在HackerRank解决3道"Easy"题目: - 数值计算(如:阶乘、斐波那契) - 字符串处理(如:回文判断) - 基础逻辑(如:闰年判断) 3. 记录调试日记(常见错误类型库) # 任务 - 实现综合小项目(如:简易计算器) - 参加LeetCode赛(仅做第1题) ``` #### 阶段2:数据结构入门(第5-8) **目标**: 1. 掌握4大基础数据结构: - 数组/字符串(索引操作) - 栈/队列(LIFO/FIFO) - 字典(键值映射) - 集合(去重特性) 2. 时间复杂度分析能力($O(n)$ vs $O(n^2)$) **训练重点**: ```python # 数据结构实战训练 def solve_matrix_sum(matrix): """ 二维数组求和(嵌套循环) """ total = 0 for row in matrix: # O(n) for num in row: # O(m) total += num return total # => O(n*m) ``` **推荐题库**:LeetCode "Explore"卡片(数组/字符串专题) #### 阶段3:算法能力提升(第9-14) **目标**: 1. 掌握6大核心算法: | 算法类型 | 经典问题 | 时间复杂度 | |---------|----------|------------| | 排序 | 快速排序 | $O(n \log n)$ | | 搜索 | 二分查找 | $O(\log n)$ | | 贪心 | 找零问题 | $O(n)$ | | DFS/BFS | 迷宫路径 | $O(V+E)$ | | 简单DP | 爬楼梯 | $O(n)$ | | 位运算 | 汉明重量 | $O(1)$ | **训练方案**: ```python # 二分查找模板(必须背诵) def binary_search(arr, target): left, right = 0, len(arr)-1 while left <= right: mid = (left+right)//2 if arr[mid] == target: return mid elif arr[mid] < target: left = mid+1 else: right = mid-1 return -1 ``` **里程碑**:能在60分钟内独立解决Codeforces Div.3的A-C题 #### 阶段4:竞赛实战冲刺(第15-16) **目标**: 1. 熟悉CodeVita题型分布(近年真题分析): ```mermaid pie title 初赛题型分布 “数学/逻辑题” : 35 “字符串处理” : 25 “基础数据结构” : 20 “简单算法” : 15 “其他” : 5 ``` 2. 建立个人解题模板库 3. 掌握时间分配策略(Easy题<30min) **冲刺方案**: 1. 每日进行真题限时训练(使用pastcodevita.in题库) 2. 参加至少3场模拟赛(CodeChef Starter竞赛) 3. 错题本专项突破(重点攻克高频错误类型) ### 三、里程碑检测表 | 时间节点 | 能力检测标准 | 通过标志 | |----------|--------------|----------| | 第4结束 | Python基础 | 完成50道HackerRank Easy题 | | 第8结束 | 数据结构应用 | 独立实现队列模拟银行排队系统 | | 第12结束| 算法实现 | 正确求解0-1背包问题($n \leq 20$) | | 第16结束| 竞赛能力 | 模拟赛稳定解决2题(含1道中等难度) | > **关键提示**:初赛通过率约30%,重点保证基础题正确率。2022年初赛数据显示,做出1题即可晋级(满分题平均耗时72分钟)[^1] ### 四、资源推荐包 1. **教材**:《算法图解》(Aditya Bhargava)第1-8章 2. **平台**: - 训练场:HackerRank → LeetCode → Codeforces - 模拟赛:CodeChef Starters 3. **工具**: - 调试工具:PythonTutor可视化 - 模板管理:Jupyter Notebook分类存档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值