安工PTA攀登者41-50题(24级)c语言

7-41 兔子繁衍问题

#include<stdio.h>

int main() {
    int n;
    scanf("%d", &n);
    int a = 1, b = 1, c = 2;
    int cnt = 0;
    while (true) {
        if (b >= n) {
            break;
        }
        c = a + b;
        a = b;
        b = c;
        cnt++;
    }
    if (n <= 1) {
        printf("1");
    } else {
        printf("%d", cnt + 2);
    }
    return 0;
}

7-42 找出不是两个数组共有的元素

#include<stdio.h>

int main() {
    int n1;
    scanf("%d", &n1);
    int arr1[n1];
    for (int i = 0; i < n1; i++) {
        scanf("%d", &arr1[i]);
    }
    int n2;
    scanf("%d", &n2);
    int arr2[n2];
    for (int i = 0; i < n2; i++) {
        scanf("%d", &arr2[i]);
    }
    int arr3[n1 + n2];
    int index = 0;
    for (int i = 0; i < n1; i++) {
        int j;
        for (j = 0; j < n2; j++) {
            if (arr1[i] == arr2[j]) {
                break;
            }
        }
        if (j == n2) {
            int flag = 1;
            for (int k = 0; k < index; k++) {
                if (arr3[k] == arr1[i]) {
                    flag = 0;
                    break;
                }
            }
            if (flag) {
                arr3[index++] = arr1[i];
            }
        }
    }
    for (int i = 0; i < n2; i++) {
        int j;
        for (j = 0; j < n1; j++) {
            if (arr2[i] == arr1[j]) {
                break;
            }
        }
        if (j == n1) {
            int flag = 1;
            for (int k = 0; k < index; k++) {
                if (arr3[k] == arr2[i]) {
                    flag = 0;
                    break;
                }
            }
            if (flag) {
                arr3[index++] = arr2[i];
            }
        }
    }
    int i = 0;
    for (; i < index - 1; i++) {
        printf("%d ", arr3[i]);
    }
    for (; i < index; i++) {
        printf("%d", arr3[i]);
    }
    return 0;
}

7-43 计算天数

#include<stdio.h>

int main() {
    int arr[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int arr2[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int year, month, day;
    scanf("%d/%d/%d", &year, &month, &day);
    int sum = 0;
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
        for (int i = 0; i < month - 1; i++) {
            sum += arr2[i];
        }
        sum += day;
        printf("%d", sum);
    } else {
        for (int i = 0; i < month - 1; i++) {
            sum += arr[i];
        }
        sum += day;
        printf("%d", sum);
    }
    return 0;
}

7-44 时间换算

#include<stdio.h>

int main() {
    int hour, min, sec;
    scanf("%d:%d:%d", &hour, &min, &sec);
    int addsec;
    scanf("%d", &addsec);
    sec += addsec;
    if (sec >= 60) {
        min += sec / 60;
        sec %= 60;
    }
    if (min >= 60) {
        hour += min / 60;
        min %= 60;
    }
    if (hour >= 24) {
        hour %= 24;
    }
    printf("%02d:%02d:%02d", hour, min, sec);
    return 0;
}

7-45 Welcome to You!

#include<stdio.h>

int main() {
    printf("Welcome to You!\n");
    return 0;
}

7-46 输出菱形图案

#include<stdio.h>

int main() {
    printf("  A\n"
           "A   A\n"
           "  A");
    return 0;
}

7-47 输出带框文字

#include<stdio.h>

int main() {
    printf("************\n"
           "  Welcome\n"
           "************");
    return 0;
}

7-48 计算摄氏温度

#include<stdio.h>

int main() {
    int F = 100, C;
    C = 5 * (F - 32) / 9;
    printf("fahr = 100, celsius = %d", C);
    return 0;
}

7-49 将x的平方赋值给y

#include<stdio.h>

int main() {
    int x = 3, y = x * x;
    printf("%d = %d * %d\n", y, x, x);
    printf("%d * %d = %d\n", x, x, y);
    return 0;
}

7-50 计算华氏温度

#include<stdio.h>

int main() {
    int F, C = 26;
    F = 9 * C / 5 + 32;
    printf("celsius = 26, fahr = %d", F);
    return 0;
}
“华为OD机试 - 攀登者1”是华为公司的一场在线岗位技术面试。在这场机试中,面试者扮演的角色是“攀登者1”,需要展示自己在软件开发和技术问解决方面的能力。 首先,作为攀登者1,必须具备扎实的编程技能。这包括熟练掌握至少一种主流编程语言,并能够在给定的时间内编写出有效的代码。此外,对常见的数据结构算法也应有一定的了解,以便能够在解决问时选择最优解决方案。 其次,攀登者1需要展示出对软件开发流程的理解。这包括了解需求分析、设计、编码和测试等一系列开发过程,并能够合理地组织和安排自己的开发任务。同时,对于代码质量的重视也是非常重要的,攀登者1需要注意代码的可读性、可维护性和扩展性等方面。 此外,在面试过程中,攀登者1需要展示自己在解决技术问时的思考能力和解决能力。这意味着在面对复杂的技术问时能够有条不紊地分析问、确定解决方案,并能够迅速实施和测试解决方案。同时,攀登者1需要具备快速学习和适应新技术的能力,因为技术的更新换代很快,对新技术的学习和掌握能力是面试中的重要评价指标之一。 总结起来,“华为OD机试 - 攀登者1”是一场测试面试者在软件开发和技术问解决方面能力的机试。面试者需要展示自己的编程技能、软件开发流程理解、问解决能力和学习能力等方面的能力。只有在这些方面能够表现出色,攀登者1才能成功地通过这场机试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值