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