每日一题&&学习笔记

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。

示例 1:

输入:x = 123
输出:321

示例 2:

输入:x = -123
输出:-321

示例 3:

输入:x = 120
输出:21

示例 4:

输入:x = 0
输出:0
class Solution {  
public:   
    int reverse(int x) {  
        // 定义一个变量rev来存储反转后的结果,初始化为0  
        int rev = 0;  
          
        // 使用while循环来反转整数x,直到x变为0  
        while (x != 0) {  
            // 检查在添加下一个数字之前,rev是否已经超出了32位整数的范围  
            // 这是通过比较rev乘以10(即rev的下一个可能值,因为我们要加上一个新的最低位数字)  
            // 是否在INT_MIN/10和INT_MAX/10之间来实现的  
            // 如果不在这个范围内,则直接返回0,因为添加任何数字都会导致溢出  
            if (rev < INT_MIN / 10 || rev > INT_MAX / 10) {  
                return 0;  
            }  
              
            // 取x的最低位数字  
            int digit = x % 10;  
              
            // 去掉x的最低位,为下一次迭代准备  
            x /= 10;  
              
            // 将取得的最低位数字digit加到rev的末尾,即乘以10(向左移动一位)然后加上digit  
            rev = rev * 10 + digit;  
        }  
          
        // 当x变为0时,循环结束,此时rev存储了x反转后的结果  
        // 返回反转后的整数  
        return rev;  
    }  
};

反转整数的思路到是不难理解。这里主要是考虑数据范围的问题。先了解一下INT_MIN的值为负的2的32次方减1,INT_MAX的值为2的32次方减1。注意使用INT_MIN和NT_MAX的时候,要使用头文件#include<limits.h>。

大三学生如果准备考研,制定一个合理的学习计划至关重要。下面是一个建议的大三计算机专业考研学习计划,你可以根据自己的实际情况进行调整: **每天的学习时间分配(假设总时间7-8小时):** 1. **早晨(6:30-8:00):** 早起阅读英语(词汇和阅读理解),或背诵专业课知识点。 2. **上午(8:30-12:00):** 主攻数学或专业基础课程,如数据结构、算法、操作系统等。每门课程分段学习,注重理解和做题。 3. **午休(12:00-13:30):** 合理休息,吃午饭和短暂午睡,为下午保持精力。 4. **下午(13:30-17:00):** 进行专业课复习,如计算机网络、数据库原理等。同时做一些习题巩固。 5. **晚上(17:30-20:00):** 分析历年考研真题,或进行模拟考试。同时注意政治、英语等公共科目的复习。 6. **晚上(20:00-21:30):** 总结一天的学习,整理笔记,回顾重点难点。 7. **晚间(21:30-22:00):** 放松娱乐,比如阅读、运动或听音乐,帮助缓解压力。 **每周的计划(周末留出更多时间进行整体复习和模拟考试):** - 周末:系统复习本周所学内容,做一套完整的模拟试题,并分析错题。 **注意事项:** 1. **保持健康生活**:保证充足的睡眠,均衡饮食,适度运动。 2. **定期测试**:定期进行自我测试,了解进度和薄弱环节。 3. **调整节奏**:根据学习效率灵活调整计划,遇到难题时适当延长学习时间。 4. **保持兴趣**:对考研的热情和兴趣是持久学习的关键。 5. **心理调适**:保持积极心态,学会应对压力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值