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

考研机试常见基本题型

1、求100以内的素数

sqrt()函数在cmath头文件中。

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    int count = 0;  // 用于统计素数的个数
    // 遍历 100 到 200 之间的每一个数
    for (int num = 100; num <= 200; num++) {
        bool isPrime = true;  // 先假设当前数是素数
        // 判断是否为素数,检查从 2 到根号 num 的数
        for (int i = 2; i <= sqrt(num); i++) {
            if (num % i == 0) {
                isPrime = false;  // 如果能整除,则不是素数
                break;
            }
        }
        if (isPrime) {
            count++;  // 如果是素数,计数器加 1
            cout << num << " ";  // 输出素数
        }
    }
    cout << endl << count << endl;  // 换行后输出素数的个数
    return 0;
}

2、判断某点是否在一个三角形内

1、面积法

abs()、sqrt()都是在cmath中

#include <iostream>
#include <vector>
#include <cmath>

// 计算两点间距离
double distance(std::vector<double>& a, std::vector<double>& b) {
    return std::sqrt((a[0] - b[0]) * (a[0] - b[0]) + (a[1] - b[1]) * (a[1] - b[1]));
}

// 计算三角形面积
double triangleArea(std::vector<double>& a, std::vector<double>& b, std::vector<double>& c) {
    double ab = distance(a, b);
    double bc = distance(b, c);
    double ca = distance(c, a);
    double s = (ab + bc + ca) / 2;
    return std::sqrt(s * (s - ab) * (s - bc) * (s - ca));
}

// 判断点是否在三角形内
bool isPointInTriangle(std::vector<double>& p, std::vector<double>& a, std::vector<double>& b, std::vector<double>& c) {
    double s = triangleArea(a, b, c);
    double s1 = triangleArea(p, a, b);
    double s2 = triangleArea(p, b, c);
    double s3 = triangleArea(p, c, a);
    // 考虑浮点数精度问题,判断差值是否在一个很小的范围内
    return std::abs(s - (s1 + s2 + s3)) < 1e-9;
}

int main() {
    // 测试代码
    std::vector<double> a = {0, 0};
    std::vector<double> b = {1, 0};
    std::vector<double> c = {0, 1};
    std::vector<double> p = {0.2, 0.2};
    std::cout << (isPointInTriangle(p, a, b, c)? "在三角形内" : "不在三角形内") << std::endl;
    return 0;
}

3、鸡兔同笼

#include <iostream>
using namespace std;

// 判断是否能构成有效的鸡兔同笼问题
bool isSameCage(int heads, int feet) {
    // 判断脚的数量减去两倍头的数量是否为偶数且大于等于0
    if ((feet - 2 * heads) % 2 == 0 && feet - 2 * heads >= 0) {
        int y = (feet - 2 * heads) / 2;  // 兔子的数量
        int x = heads - y;  // 鸡的数量
        // 判断鸡和兔的数量是否都为非负整数
        if (x >= 0 && y >= 0) {
            return true;
        }
    }
    return false;
}
int main() {
    // 测试用例
    cout << (isSameCage(35, 94)? "true" : "false") << endl;
    cout << (isSameCage(2, 4)? "true" : "false") << endl;
    cout << (isSameCage(4, 2)? "true" : "false") << endl;
    cout << (isSameCage(10, 30)? "true" : "false") << endl;
    return 0;
}

英文字母大小写转换

描述:把一个字符串中所有的大写字母转换为小写字母,小写字母转换为大写字母,其他字符保持不变。

#include <iostream>
#include <string>
using namespace std;

int main() {
    string s;
    cin >> s;
    for (char& c : s) {
        if (isupper(c)) {
            c = tolower(c);
        } else if (islower(c)) {
            c = toupper(c);
        }
    }
    cout << s << endl;
    return 0;
}

c语言版本

#include <iostream>
#include <string>
using namespace std;

int main() {
	string s;
	cin >> s;
	for (char& c : s) {
	if ('A'<=c && c<='Z') {
		c +=32;
	}
	else if ('a' <= c && c <= 'z') {
		c -=32;
	}
	}
	cout << s << endl;
    return 0;
}

相关文章:

  • 学习前置知识第18和19天
  • 计算机网络:计算机网络的组成和功能
  • 腾讯元宝:AI 时代的快速论文阅读助手
  • Linux中的TCP编程接口基本使用
  • 深度学习进阶:神经网络优化技术全解析
  • keil软件下载安装使用(STM32篇)
  • Python 智能机房签到系统:高效管理课堂考勤
  • 计算机毕业设计SpringBoot+Vue.js高校专业实习管理系统(源码+文档+PPT+讲解)
  • 基于深度学习的恶意软件检测系统:设计与实现
  • 【Git】创建,切换分支
  • HTML-网页介绍
  • 剑指 Offer II 061. 和最小的 k 个数对
  • 车载网络测试-DBC文件解读
  • 算法-回溯算法总结
  • 灰色地带规避:知识产权校验API的商标库模糊匹配算法
  • android studio开发文档
  • python从入门到精通(二十六):python文件操作之Word全攻略(基于python-docx)
  • 【JAVA架构师成长之路】【电商系统实战】第11集:秒杀系统防刷实战(验证码 + 用户行为黑名单)
  • linux声音框架alsa的api学习之wav文件解析
  • DIY Tomcat:手写一个简易Servlet容器
  • 青岛大型网站建设/环球军事网最新军事新闻最新消息
  • wap手机建站平台/推广营销平台
  • 网站运行费用预算/谷歌搜索为什么用不了
  • 网站后台看不到部分内容/正规百度推广
  • 学校html网站模板/如何网络推广新产品
  • 农业网站建设/线上销售渠道有哪些