每日一题 | day28(奇数位上都是奇数或者偶数位上都是偶数 | 猴子分桃)

Posted WhiteShirtI

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一题 | day28(奇数位上都是奇数或者偶数位上都是偶数 | 猴子分桃)相关的知识,希望对你有一定的参考价值。

选择题

1、下面的程序执行输出几个hello?

#include<stdio.h>
#include <unistd.h>
int main( ) {
	fork( ); //1
	fork( );//2
	fork( );//3
	printf(“hello\\n”);
return 0;
}

A 3
B 4
C 6
D 8

正确答案 D:
在这里插入图片描述
8个线程,一共打印8次

2、通常所说的"存储保护"的基本含义是()。
A 防止存储器硬件受损
B 防止程序在内存丢失
C 防止程序间相互越界访问
D 防止程序被人偷看

正确答案 C:

3、下列进程调度算法中,()可能会出现进程长期得不到调度的情况。
A 非强占式静态优先权法
B 强占式静态优先权法
C 时间片轮转调度算法
D 非强占式动态优先权法

正确答案 B:

4、一个在线服务器通常需要读取存储着海量数据的数据库。为了提高服务器处理速度,通常需要加cache(缓存),以下场景中不适合使用cache的是
A 数据库中每条数据被访问的概率近似相等,且独立
B 使用了多线程机制的服务
C 单条线程尺寸太小的数据
D 有着大量访问的服务

正确答案 A:

编程题

题目1
在这里插入图片描述
题解思路:定义两个指针,一个指向计偶数位,一个指向奇数位。当偶数指针指向奇数时就停下来,当奇数指针指向偶数时就停下来,然后交换这两个指针指向的值,然后分别向后移动两个位置,直到有一个指针走完,一个指针走完也代表着偶数或者奇数位上都是偶数或者奇数了。
在这里插入图片描述
代码:(牛客测试用例有问题)

class Solution {
public:
    void oddInOddEvenInEven(vector<int>& arr, int len) 
    {
        int i = 0;//偶数指针
        int j = 0;//奇数指针
        
        while (i < len && j < len)
        {
            while (i < len && arr[i] % 2 == 0)//找偶数位上的奇数
            {
                i += 2;
            }//找到或者结束就停下来
            while (j < len && arr[j] % 2 != 0)//找奇数位上的偶数
            {
                j += 2;
            }//找到或者结束就停下来
            if (i >= len || j >= len)
                break;
            swap(arr[i], arr[j]);
        }
    }
};

题目2
在这里插入图片描述
解题思路:数学功底必须到位
在这里插入图片描述
代码

#include <math.h>
#include <iostream>
using namespace std;

int main()
{
    int n;
    while (cin >> n && n!=0)
    {
        long total = pow(5, n) - 4;
        long oldMonkey = pow(4, n) -4 + n;
        cout << total << " " << oldMonkey << endl;
    }
    
    return 0;
}

以上是关于每日一题 | day28(奇数位上都是奇数或者偶数位上都是偶数 | 猴子分桃)的主要内容,如果未能解决你的问题,请参考以下文章

基础编程题之奇数位(偶数位)都是奇数(偶数)

BAT实习内推笔试卷(第一场)——个人答案以及分析

LeetCode2022 8月 每日一题

LeetCode2022 8月 每日一题

每日一题1252. 奇数值单元格的数目

从0~7这八个数组成无重复的七位数,要求奇数占奇数位,有多少种排列