随机练习题:浅浅固定思路

简介: 随机练习题:浅浅固定思路

1.牛牛的10类人


描述

世界上有10类人,1类是懂二进制的,另一类的不懂二进制的。牛牛是第10种人,因此他是懂二进制的。


牛牛把二进制数分成两种,一种是 1 的数量是偶数的,牛牛称之为 1 数,一种是 0 的数量是偶数的,牛牛称之为 0 数,如果一个数同时是 1 数和 0 数,那称之为 10 数。


输入描述:

第一行输入一个正整数 n 表示数的个数


第二行输入 n 个正整数,表示每个输入的数字    


输出描述:

输出一行,对每个数字进行分类,即输出 0 或 1 或 10,如果既不是 0 类也不是 1 类则输出 100


示例1

输入:


2

1 10

输出:


0 10

int main() {
    int n;
    scanf("%d", &n);
    int m[n];
    for (int i = 0; i < n; i++) {
        int o = 0, l = 0;
        scanf("%d ", &m[i]);
        int val = m[i];
        while (val) {
            if (val % 2 == 1) l++;
            else o++;
            val /= 2;
        }
        if (l % 2 == 0 && o % 2 != 0) printf("1 ");
        else if (l % 2 != 0 && o % 2 == 0) printf("0 ");
        else if (l % 2 == 0 && o % 2 == 0) printf("10 ");
        else printf("100 ");
    }
    return 0;
}

2. 牛牛的四叶玫瑰数



描述

牛牛最近学了水仙花数,但是他并不喜欢水仙花,因此他准备算出 [l,r] 区间内的四叶玫瑰数。


四叶玫瑰数:一个数的四个位置的数字的四次方加起来等于这个四位数本身的数。


输入描述:

第一行输入两个正整数,表示闭区间的两头


输出描述:

输出区间内的四叶玫瑰数,保证至少有一个


示例1

输入:


1 2000

输出:


1 1634

#include<math.h>
int main() {
    int l, r;
    scanf("%d %d", &l, &r);
    for (int i = l; i <= r; i++) {
        int val = i, temp = 0;
        while (val) {
            temp += pow(val % 10, 4);
            val /= 10;
        }
        if (temp == i) printf("%d ", i);
    }
    return 0;
}

3.牛牛的替换



描述

牛牛有一个长度为 n 的字符数组,他尝试把字符数组中其中一些字符替换成另一些字符。


输入描述:

第一行输入一个正整数 n 表示字符数组的长度,四个个字符分别 a1 和 a2 , a3 和 a4,表示把字符数组中 a1 全部替换成 a2,然后把 a3 全部替换成 a4(包括a1替换后产生的a2等于a3的情况)


第二行输入一个长度为 n 的字符数组。


输出描述:

输出替换后的字符数组


示例1

输入:


5 a b l i

fklwa

输出:


fkiwb

示例2

输入:


8 a o d e

nawcoder

输出:


nowcoeer

#include <stdio.h>
#include <string.h>
int main ()
{
    int n=0;
    char a1=0;
    char a2=0;
    char a3=0;
    char a4=0;
    scanf("%d %c %c %c %c",&n,&a1,&a2,&a3,&a4);
    char arr[n];
    scanf("%s",arr);
    int sz=strlen(arr);
    int i=0;
    for(i=0;i<sz;i++)
    {
        if(arr[i]==a1)
        {
            arr[i]=a2;
        }
        if(arr[i]==a3)
        {
            arr[i]=a4;
        }
    }
    printf("%s\n",arr);
    return 0;
}

4.牛牛的素数判断



描述

牛牛刚刚学了素数的定义:素数值指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数


牛牛想知道输入的 n 个数分别是不是素数


输入描述:

第一行输入一个正整数 n ,表示后续要输入的数的数量。


后续 n 行每行输入一个正整数,表示需要判断的数。


输出描述:

输入的第 2 到第 n+1 行每行输出一次,如果输入的是素数则输出 true ,否则输出 false


示例1

输入:


3

2

3

6

输出:


true

true

false

#include <stdio.h>
int sushu(int score)
{
    int i=0;
    int flag=0;
    for(i=2;i<score;i++)
    {
        if(score%i==0)
        {
            flag=1;   //1不是素数!
        }
    }
    return flag;
}
int main ()
{
    int n=0;
    scanf("%d",&n);
    int score=0;
    int i=0;
    for(i=0;i<n;i++)
    {
        scanf("%d",&score);
       if(sushu(score)==1)
       {
           printf("false\n");
       }
        else 
            printf("true\n");
    }
    return 0;
}
相关文章
|
5月前
|
C++
【洛谷 P2241】统计方形(数据加强版)题解(循环枚举)
该题目是1997年普及组的一道编程题,要求计算$n\times m$棋盘中的正方形和长方形数量(不计正方形)。输入包含两正整数$n,m\leq 5000$。输出为一行,两个正整数分别表示正方形和长方形数量。示例输入`2 3`,输出`8 10`。解题思路是将矩形数拆分为正方形数和长方形数,然后通过双重循环计算。AC代码使用C++编写,通过累加方法得出结果。
51 0
|
4月前
|
存储 算法 索引
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
1124. 表现良好的最长时间段 (python) 前缀和 分类讨论 最大长度 力扣 面试题
|
6月前
【错题集-编程题】重排字符串(贪心 + 构造)
【错题集-编程题】重排字符串(贪心 + 构造)
|
6月前
【错题集-编程题】数组中的最长连续子序列(排序 + 模拟)
【错题集-编程题】数组中的最长连续子序列(排序 + 模拟)
|
算法
代码随想录算法训练营第二十六天 | LeetCode 39. 组合总和、40. 组合总和 II、131. 分割回文串
代码随想录算法训练营第二十六天 | LeetCode 39. 组合总和、40. 组合总和 II、131. 分割回文串
45 0
|
算法 索引
代码随想录算法训练营第二天 |977.有序数组平方,209.长度最小的字数组,59.螺旋矩阵
代码随想录算法训练营第二天 |977.有序数组平方,209.长度最小的字数组,59.螺旋矩阵
算法训练Day38|● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯
算法训练Day38|● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯
|
人工智能 算法 BI
【每日算法Day 97】经典面试题:求两个数组最小差
【每日算法Day 97】经典面试题:求两个数组最小差
134 0
(模拟)(枚举)acwing蓝桥杯1245. 特别数的和
(模拟)(枚举)acwing蓝桥杯1245. 特别数的和
60 0