模拟OJ3

折半查找(改错)

作者: Turbo

时间限制: 1s

章节: 函数

问题描述

由N个有序整数组成的数列已放在一维数组中,给定程序中函数fun的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,返回其下标值;反之,返回-1。

折半查找的基本算法是:每次查找前先确定数组中待查的范围:low和high(low<high),然后把m与中间位置(mid)中元素的值进行比较。如果m的值大于中间位置元素中的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中。直到low>high,查找结束。

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include <stdio.h>

#define N 100

int n;

/************found************/

void fun(int a[], int m) {

int low = 0, high = n - 1, mid;

while (low <= high) {

mid = (low + high) / 2;

if (m < a[mid])

high = mid - 1;

/************found************/

else If(m >= a[mid])

low = mid + 1;

else

return (mid);

}

return (-1);

}

int main() {

int i, a[N], k, m;

scanf("%d", &n);

for (i = 0; i < n; i++)

scanf("%d", a + i);

scanf("%d", &m);

k = fun(a, m);

if (k >= 0)

printf("m=%d,index=%d\n", m, k);

else

printf("Not found!\n");

return 0;

}

cpp 复制代码
#include <stdio.h>

#define N 100

 

int n;

 

/************found************/

int fun(int a[], int m) {

         int low = 0, high = n - 1, mid;

         while (low <= high) {

                   mid = (low + high) / 2;

                   if (m < a[mid])

                            high = mid - 1;

                   /************found************/

                   else  if(m > a[mid])

                            low = mid + 1;

                   else

                            return (mid);

         }

         return (-1);

}

 

int main() {

         int i, a[N], k, m;

         scanf("%d", &n);

         for (i = 0; i < n; i++)

                   scanf("%d", a + i);

         scanf("%d", &m);

         k = fun(a, m);

         if (k >= 0)

                   printf("m=%d,index=%d\n", m, k);

         else

                   printf("Not found!\n");

         return 0;

}

三个数的最小公倍数(改错)

作者: Turbo

时间限制: 1s

章节: 函数

问题描述

给定程序中函数fun的功能是:求三个数的最小公倍数。

例如,给主函数中的变量x1、x2、x3分别输入15 11 2,则输出结果应当是:330。

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include <stdio.h>

/************found************/

fun(int x, y, z) {

int j, t, n, m;

j = 1 ;

t = j % x;

m = j % y ;

n = j % z;

while (t != 0 || m != 0 || n != 0) {

j = j + 1;

t = j % x;

m = j % y;

n = j % z;

}

/************found************/

return i;

}

int main() {

int x1, x2, x3, j ;

scanf("%d%d%d", &x1, &x2, &x3);

j = fun(x1, x2, x3);

printf("%d", j);

return 0;

}

输入说明

输入三个正整数 x1, x2, x3

输出说明

输出一个正整数

cpp 复制代码
#include <stdio.h>

/************found************/

int fun(int x, int y,int z) {

       int j, t, n, m;

       j = 1 ;

       t = j % x;

       m = j % y ;

       n = j % z;

       while (t != 0 || m != 0 || n != 0) {

              j = j + 1;

              t = j % x;

              m = j % y;

              n = j % z;

       }

       /************found************/

       return j;

}

int main() {

       int x1, x2, x3, j ;

       scanf("%d%d%d", &x1, &x2, &x3);

       j = fun(x1, x2, x3);

       printf("%d", j);

       return 0;

}

数列平方根和(改错)

作者: Turbo

时间限制: 1s

章节: 函数

问题描述

已知一个数列从第0项开始的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。给定程序中函数fun的功能是:计算并输出该数列前n项的平方根之和。n的值通过形参传入。

例如,当n=10时,程序的输出结果应为:23.197745。

请改正程序中的错误,使程序能输出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

#include <math.h>

/************found************/

fun(int n) {

double sum, s0, s1, s2, s;

int k;

sum = 1.0;

if (n <= 2)

sum = 0.0;

s0 = 0.0;

s1 = 0.0;

s2 = 1.0;

for (k = 4; k <= n; k++) {

s = s0 + s1 + s2;

sum += sqrt(s);

s0 = s1;

s1 = s2;

s2 = s;

}

/************found************/

return sum

}

int main () {

int n;

scanf("%d", &n);

printf("%f", fun(n));

return 0;

}

输入说明

输入一个整数n

输出说明

输出fun函数的返回值

cpp 复制代码
#include <stdio.h>

#include <math.h>

/************found************/

double fun(int n) {

       double sum, s0, s1, s2, s;

       int k;

       sum = 1.0;

       if (n <= 2)

              sum = 0.0;

       s0 = 0.0;

       s1 = 0.0;

       s2 = 1.0;

       for (k = 4; k <= n; k++) {

              s = s0 + s1 + s2;

              sum += sqrt(s);

              s0 = s1;

              s1 = s2;

              s2 = s;

       }

       /************found************/

       return sum;

}

int main () {

       int n;

       scanf("%d", &n);

       printf("%f", fun(n));

       return 0;

}

进制转换(改错)

作者: Turbo

时间限制: 1s

章节: 一维数组

问题描述

给定程序的功能是:将十进制正整数m转换成k(2≤k≤9)进制数,并按高位到低位顺序输出。

例如,若输入8和2,则应输出1000(即十进制数8转换成二进制表示是1000)。

请改正 程序 中的错误,使它能得出正确的结果。

注意:不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

int main()

{

int m, k;

int aa[20] = {0}, i;

scanf("%d%d", &m, &k);

for (i = 0; m; i++)

{

/**********found**********/

aa[i] = m / k;

m /= k;

}

/**********found**********/

for (; i >= 0; i--)

printf("%d", aa[i]);

return 0;

}

输入说明

输入两个正整数m,k

输出说明

输出m的k进制表示

cpp 复制代码
#include <stdio.h>

int main()

{

    int m, k;

    int aa[20] = {0}, i;

    scanf("%d%d", &m, &k);

    for (i = 0; m; i++)

    {

        /**********found**********/

        aa[i] =  m % k;

        m /= k;

    }

    /**********found**********/

    for (i--; i >= 0; i--)

        printf("%d", aa[i]);

    return 0;

}

英语翻译

Pretrained models have become a dominant paradigm in modern artificial intelligence. These models are first trained on large-scale datasets to learn general representations and then fine-tuned on specific downstream tasks. This approach significantly reduces the need for labeled data and improves model performance. In natural language processing, models like BERT and GPT are pre-trained using self-supervised learning objectives. Fine-tuning allows these models to adapt to tasks such as text classification, sentiment analysis, and question answering. Transfer learning plays a crucial role in this process by leveraging knowledge from one domain to another. Despite their effectiveness, pretrained models require substantial computational resources, raising concerns about efficiency and environmental impact.

预训练模型已成为现代人工智能领域占主导地位的范式。这些模型首先通过大规模数据集进行训练,以学习通用表示,然后针对特定下游任务进行微调。这种方法显著降低了对标注数据的依赖,并提高了模型性能。在自然语言处理领域,像BERT和GPT这样的模型通过自监督学习目标进行预训练。微调使这些模型能够适应文本分类、情感分析和问题回答等任务。迁移学习在这一过程中扮演着至关重要的角色,它能够利用一个领域的知识来促进另一领域的学习。尽管预训练模型效果显著,但它们需要大量的计算资源,这引发了关于效率及环境影响方面的担忧。

representations 代表

downstream tasks 下游任务

self-supervised learning objectives自监督学习目标

Transfer learning 迁移学习

leveraging 利用

相关推荐
靠沿2 小时前
【递归、搜索与回溯算法】专题二——二叉树的dfs
算法·深度优先
美式请加冰2 小时前
BFS算法的介绍和使用(上)
算法·宽度优先
sonnet-10292 小时前
堆排序算法
java·c语言·开发语言·数据结构·python·算法·排序算法
我是咸鱼不闲呀2 小时前
力扣Hot100系列24(Java)——[回溯]总结(下)(括号生成,单词搜索,分割回文串)
java·算法·leetcode
tankeven2 小时前
HJ150 全排列
c++·算法
Q741_1472 小时前
每日一题 力扣 2946. 循环移位后的矩阵相似检查 力扣 155. 最小栈 数学 数组 模拟 C++ 题解
c++·算法·leetcode·矩阵·模拟·数组·
handsomethefirst2 小时前
【算法与数据结构】【面试经典150题】【题41-题45】
数据结构·算法·leetcode
2301_810160952 小时前
C++中的状态模式
开发语言·c++·算法
xrgs_shz2 小时前
图像的点运算(线性点运算和非线性点运算)
人工智能·算法·机器学习