目录
- #include <bits/stdc++.h>
- using namespace std;
-
- int main() {
- queue<int> myQueue; // 定义并初始化一个整型队列
-
- // 输出队列初始大小
- printf("the size of myQueue: %zu\n", myQueue.size());
-
- for (int i = 0; i < 10; ++i) {
- myQueue.push(i); // 将元素推入队列
- }
-
- // 输出队列的前端和后端元素
- printf("the front of myQueue: %d\n", myQueue.front());
- printf("the back of myQueue: %d\n", myQueue.back());
-
- // 输出队列当前大小
- printf("the size of myQueue: %zu\n", myQueue.size());
-
- int sum = 0;
- while (!myQueue.empty()) {
- sum += myQueue.front(); // 累加队列前端元素
- myQueue.pop(); // 弹出队列前端元素
- }
-
- // 输出累加和
- printf("sum: %d\n", sum);
-
- //再次检查是否为空
- if (myQueue.empty()) {
- printf("myQueue is empty\n");
- }
-
- // 输出队列最终大小(应该是0)
- printf("the size of myQueue: %zu\n", myQueue.size());
-
- return 0;
- }
- #include <bits/stdc++.h>
- using namespace std;
-
- int main() {
- int n,p,m;
- while(true){
- scanf("%d%d%d",&n,&p,&m);
- if(n==0&&p==0&&m==0){
- break;
- }
-
- //1、排队
- //队列中的元素是孩子的编号
- queue<int>children;
- //把第一轮要喊编号的孩子排好队
- //i遍历孩子的编号,j记录已经遍历的孩子数量
- for(int i=p,j=0;j<n;++j){
- children.push(i);
- ++i;//p ->p+1 ->p+2 ->..n ->1 ->...->p-1
- if(i>n){
- i=1;
- }
- }
- }
-
- //2、喊号过程
- int num=1;//将要喊的号
- while(true){
- int cur=children.front();//cur是队首孩子的编号
- children.pop();
- if(num==m){//检查刚才喊得号是不是1
- num=1;//下一个就是1
- //喊号的同学不需要归队
- if(children.empty()){
- printf("%d\n",cur);
- break;
- }else{
- //还有同学在喊号
- printf("%d",cur);
- }
- }
- } else{
- //喊得号码不是m,归队
- num=num+1;
- children.push(cur);
- }
- return 0;
- }
- #include <bits/stdc++.h>
- using namespace std;
-
- // 定义动物结构体
- struct animal {
- int num; // 动物编号
- int seq; // 次序标志
- animal(int n, int o) : number(n), order(o) {} // 构造函数
- };
-
- int main() {
- queue<animal> catque; // 猫的队列
- queue<animal> dogque; // 狗的队列
- int n;
- int seq = 0;
- scanf("%d",&n); // 输入动物数量
- for (int i = 0; i < n; ++i) {
- int method, pare;
- scanf("%d%d",&method,&pare)// 输入操作方法和动物类型
- if (method == 1) {
- // 入队操作
- if (pare > 0)
- {
- //操作狗
- animal dog;
- dog.num=para;
- dog.seq=seq;
- ++seq;
- dogque.push(dog);
- } else
- {
- animal cat;
- cat.num=para;
- cat.seq=seq;
- ++seq;
- catque.push(dog);
- }
- }
- else
- {
- // 出队操作
- if (pare == 0 && !dogque.empty() && !catque.empty()) {
- // 猫和狗都不为空,比较次序出队
- if (dogque.front().pare < catque.front().pare) {
- cout << dogque.front().number << " ";
- dogque.pop();
- } else {
- cout << catque.front().number << " ";
- catque.pop();
- }
- } else if (pare == 0 && dogque.empty() && !catque.empty()) {
- // 狗为空,只有猫,出队猫
- cout << catque.front().num << " ";
- cats.pop();
- } else if (pare== 0 && !dogque.empty() && catque.empty()) {
- // 猫为空,只有狗,出队狗
- cout << dogque.front().num << " ";
- dogs.pop();
- } else if (pare == 1 && !dogque.empty()) {
- // 只出队狗
- cout << dogque.front().num<< " ";
- dogs.pop();
- } else if (pare== -1 && !catque.empty()) {
- // 只出队猫
- cout << catque.front().num<< " ";
- catque.pop();
- }
- }
- }
- cout << endl; // 输出换行符
- return 0;
- }
小蓝准备用256MB 的内存空间开一个数组,数组的每个元素都是 32 位二进制整数,如果不考虑程序占用的空间和维护内存需要的辅助空间,请问256MB 的空间可以存储多少个32 位二进制整数?
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
答:相当于一道计组的题2^28/2^2,再用pow(2,26);
6.71089e+007
小蓝有很多数字卡片,每张卡片上都是数字 0 到 9 。
小蓝准备用这些卡片来拼一些数,他想从1开始拼出正整数,每拼一个,就保存起来,卡片就不能用来拼其它数了。小蓝想知道自己能从 1 拼到多少。
例如,当小蓝有 30张卡片,其中 0 到 9 各 3 张,则小蓝可以拼出 1 到 10 ,但是拼 11 时卡片 1 已经只有一张了,不够拼出 11 。
现在小蓝手里有 0 到 9 的卡片各 2021 张,共20210 张,请问小蓝可以从 1 拼到多少?
提示:建议使用计算机编程解决问题。
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
3181(短代码+word不容易呀,菜就得练┭┮﹏┭┮)
代码:
- #include <bits/stdc++.h>
- using namespace std;
-
- int card[10];
- bool check(int num)
- {
- while (num)
- {
- int a = num % 10;
- if (a == 1)
- if (card[1] == 0)
- return false;
- else
- card[1]--;
- num = num / 10;
- }
- return true;
- }
- int main()
- {
- for (int i = 0; i <= 9; i++)
- {
- card[i] = 2021;
- }
- for (int i = 1;check(i); i++)
- {
- cout << i << endl;
- }
- return 0;
- }
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
目前还不会!!之后搞懂!
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
代码部分
- #include <bits/stdc++.h>
- using namespace std;
-
- int main()
- {
- long long num=2021041820210418;
- vector<long long> divisor;
- for(long long i=1;i<=sqrt(num);i++){
- if(num%i==0){
- divisor.push_back(i);
- long long j=num/i;
- //避免将重复的因子添加到divisor向量中
- if(j!=i){
- divisor.push_back(j);//如果是因子就将因子压入因子容器里
- }
- }
- }
- int count=0;//设置好题解是count初值为0
- //设置三个迭代器遍历因子容器找三个因子相乘就是num的组合,答案就在这些组合里面
- vector<long long>::iterator a,b,c;
- for(a=divisor.begin();a!=divisor.end();a++){
- for(b=divisor.begin();b!=divisor.end();b++){
- for(c=divisor.begin();c!=divisor.end();c++){
- if((*a)*(*b)*(*c)==num){
- count++;
- }
- }
- }
- }
- cout<<count<<endl;
- return 0;
- }
心得体会:
int main()
{
long long num=2021041820210418;
vector
for(long long i=1;i<=sqrt(num);i++){
if(num%i==0){
divisor.push_back(i);
long long j=num/i;
if(j!=i){
divisor.push_back(j);//如果是因子就将因子压入因子容器里
}
}
}
对于这段代码是用于计算给定的数num
的因子。
首先,使用一个for
循环来遍历从1到num
的平方根之间的整数,即i * i <= num
。这是因为一个数的因子不会超过它的平方根。
在循环中,通过判断num
是否能被i
整除来确定i
是否是num
的因子。如果num
能被i
整除,即num % i == 0
,则将i
添加到因子容器divisor
中。
接下来,使用变量j
存储num
除以i
的结果,即j = num / i
。然后,通过判断j
是否等于i
,来避免将重复的因子添加到divisor
中。如果j
不等于i
,则将j
也添加到divisor
中。
经过循环遍历后,divisor
中存储了num
的所有因子,这段代码的目的是为了生成一个包含num
所有因子的容器divisor
,以便后续的处理和计算。