当前位置: 首页 > article >正文

C#基础题总结

16.一张单据上有一个5位数的号码为6**42,其中百位数和千位数已模糊不清,但知道该数能被 57 和 67 除尽。设计一个算法,找出该单据所有可能的号码。

17.编程序求2~10000以内的完全数。一个数的因子(除了这个数本身)之和等于该数本身。

18.找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum,请编写函数countValue()实现程序要求。

19.将大于整数m且小于n的k个素数存入数组x。请编写函数num()实现程序的要求.

20.选取出100以上1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数CN以及这些素数值的和SUM。请编写函数实现程序要求.

16、我们可以看到是百位和千位不清楚是多少,我们可以从01-99来进行猜测,代码如下:

    for (int i = 1; i <= 99; i++)
    {
        int number = 60000 + 6 * i + 42; // 构建六位数,形式为60000 + 6 * (01-99) + 42
        if (IsValidNumber(number))
        {
            Console.WriteLine($"有效的单据号码是: {number}");
            break; // 找到一个有效的单据号码后就停止循环
        }
    }
}

static bool IsValidNumber(int number)
{
    // 这里可以添加更多的校验逻辑,例如检查百位和千位的模糊条件
    // 例如,检查百位和千位的和或乘积符合某种模式
    int hundredth = number / 100 % 10;
    int thousandth = number / 1000 % 10;
    // 假设模糊条件是百位和千位数字之和为5
    if (hundredth + thousandth == 5)
    {
        return true;
    }
    return false;
}

17、外层循环遍历2到10000的所有整数,内层循环遍历这个数的所有因子,如果一个数的因子之和等于这个数本身,那么这个数就是完全数,输出它。代码如下:

 for (int number = 2; number <= 10000; number++)
 {
     int sum = 0;
     for (int i = 1; i < number; i++)
     {
         if (number % i == 0)
         {
             sum += i;
         }
     }
     if (sum == number)
     {
         Console.WriteLine(number);
     }
 }

18、判断素数,以及加上指定的数还是素数,我们可以根据以下步骤来进行:

  1. 定义素数判断函数‌:首先,需要定义一个判断素数的函数。素数是指只能被1和自身整除的大于1的自然数。

  2. 遍历并判断‌:在1到100的范围内遍历每个数,使用素数判断函数检查该数及其加4和加10后的结果是否都是素数。如果是,则计数器加1,并将该数加入到结果集中。

  3. 输出结果‌:最后输出满足条件的整数个数。代码如下:

   

    int count = 0; // 计数器
    int sum = 0; // 满足条件的整数之和
    for (int i = 2; i <= 100; i++) // 从2开始到100遍历每个数
    {
        if (countValue(i) && countValue(i + 4) && countValue(i + 10)) // 检查I、I+4、I+10是否都是素数
        {
            count++; // 计数器加1
            sum += i; // 将满足条件的整数加入到和中
        }
    }
    Console.WriteLine($"满足条件的整数的个数={count}"); // 输出满足条件的整数个数
    Console.WriteLine($"满足条件的整数的和值={sum}"); // 输出满足条件的整数之和
}

// 判断一个数是否为素数的函数
static bool countValue(int number)
{
    if (number <= 1) return false; // 小于等于1的数不是素数
    for (int i = 2; i * i <= number; i++) // 只需检查到平方根即可提高效率
    {
        if (number % i == 0) return false; // 如果能被其他数整除,则不是素数
    }
    return true; // 不能被整除,则是素数
}

19、代码如下,根据素数来进行判断:

    Console.WriteLine("请输入对应的m,n,k的值");
    int m = int.Parse(Console.ReadLine());
    int n = int.Parse(Console.ReadLine());
    int k = int.Parse(Console.ReadLine());

    List<int> res = num(m, n, k);
    Console.WriteLine("结果是:"+res);
}

// 判断一个数是否为素数的函数
public static List<int> num(int m, int n, int k)
{
    List<int> primes = new List<int>();
    for (int i = m; i < n && primes.Count < k; i++)
    {
        if (IsPrime(i))
        {
            primes.Add(i);
        }
    }
    return primes;
}

private static bool IsPrime(int number)
{
    if (number <= 1)
    {
        return false;
    }
    if (number <= 3)
    {
        return true;
    }
    if (number % 2 == 0 || number % 3 == 0)
    {
        return false;
    }
    for (int i = 5; i * i <= number; i += 6)
    {
        if (number % i == 0 || number % (i + 2) == 0)
        {
            return false;
        }
    }
    return true;
}

20、这个问题可以通过三层循环解决,外层循环控制100到1000的数字,中间层循环控制个位数字,最内层循环控制十位数字,代码如下

 int count = 0;
 int num = 0;
 for (int i = 100; i <= 1000; i++)
 {
     int ones = i % 10; //个位数字
     int tens = i / 10 % 10; //十位数字
     int hundreds = i / 100; //百位数字

     if ((ones + tens) % 10 == hundreds)
     {
         Console.WriteLine(i);
         count++;
         num += i;
         Console.WriteLine("个数CN是:"+count);
         Console.WriteLine("和sum是:"+num);
     }
 }


http://www.kler.cn/a/412381.html

相关文章:

  • Pgsql:json字段查询与更新
  • d3-contour 生成等高线图
  • CSGO游戏搬砖党如何应对上海Major
  • Python中的简单爬虫
  • 【Vue】Ego商城项目跟做
  • Spring Boot 3.4.0 发行:革新与突破的里程碑
  • 【大数据学习 | Spark-SQL】SparkSQL读写数据
  • STM32 使用ARM Compiler V6 编译裸机 LWIP协议栈报错的解决方法
  • 【pyspark学习从入门到精通21】机器学习库_4
  • 解决`-bash: ./configure:/bin/sh^M:解释器错误: 没有那个文件或目录`的问题
  • 项目学习:仿b站的视频网站项目03-注册功能
  • 沃丰科技出海客服系统:打造全球化客户服务新标杆
  • 日志打印规范
  • AVL、B树和B+树
  • 学习笔记039——SpringBoot整合Redis
  • width设置100vh但出现横向滚动条的问题
  • 速度革命:esbuild如何改变前端构建游戏 (1)
  • 多模态大模型打造沉浸式社交体验,Soul App创始人张璐团队海外首秀GITEX GLOBAL
  • 使用OpenCV实现图像拼接
  • 【C++第三方库】Muduo库结合ProtoBuf库搭建服务端和客户端的过程和源码
  • 【JavaEE初阶 — 网络编程】Socket 套接字 & UDP数据报套接字编程
  • Linux 虚拟机下安装RedisJSON
  • 【Pytorch框架】无中生有,从0到1使用Dataset类处理MNIST数据集
  • 多线程1:基础概念、接口介绍、锁
  • 通俗理解人工智能、机器学习和深度学习的关系
  • 【carla生成车辆时遇到的问题】carla显示的坐标和carlaworld中提取的坐标y值相反