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

C#基础上机练习题

21.计算500-800区间内素数的个数cn,并按所求素数的值从大到小的顺序排列,再计算其间隔加、减之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值sum。请编写函数实现程序的要求,把结果cn和sum输出。

22.在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回。最后调用函数把结果输出。

23.某级数的前两项A1=1,A2=1,以后各项具有如下关系:An=An-2+2An-1下列程序的功能是:要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:Sn<M且Sn+1>=M.

24.求n以内(不包括n)同时能被3和7整数的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出。

25.请编写函数,它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数放在数组a中,并通过n返回这些数的个数

21、我们先进行排序,我们可以直接用系统自带的来打印出来,然后根据控制语句进行判断,之后在进行加减得出结果,代码如下:

    int start = 500;
    int end = 800;
    int sum = 0;
    List<int> primes = new List<int>();

    bool[] isPrime = new bool[end + 1];
    for (int i = 2; i <= end; i++)
    {
        if (!isPrime[i])
        {
            primes.Add(i);
            for (int j = 2 * i; j <= end; j += i)
            {
                isPrime[j] = true;
            }
        }
    }

    // 筛选指定范围内的素数
    primes.RemoveAll(n => n < start);
    // 按从大到小排列
    primes.Reverse();
    foreach (int prime in primes)
    {
        Console.WriteLine(prime);
    }
    for(int i = 0; i < primes.Count; i++)
    {
        // 偶数位置进行减法
        if (i % 2 == 1)
        {
            sum = sum - primes[i]; 

        }
        // 奇数位置进行加法
        if (i % 2 == 0)
        {
            sum = sum + primes[i];

        }
    }
    Console.WriteLine("个数CN:"+ primes.Count);
    Console.WriteLine("总和sum:" + sum);
}

22、这段代码定义了一个FindNumbersWithCondition方法,它使用IsArmstrongNumber函数来检查一个数字是否符合条件,并且将满足条件的数字存入数组中。Main方法中的代码调用了FindNumbersWithCondition方法,并打印出结果。

代码如下

    private static void Main(string[] args)
    {
        int[] numbers = FindNumbersWithCondition(100, 999);   // 自定义查找函数方法
        foreach (int number in numbers)
        {
            Console.WriteLine("符合条件的是"+number);   // 输出结果
        }
    }

    static int[] FindNumbersWithCondition(int start, int end)
    {
        // 条件:数字的每个位上的数字的立方和等于数字本身
        int count = 0;
        for (int i = start; i <= end; i++)
        {
            if (IsArmstrongNumber(i))
            {
                count++;
            }
        }

        int[] armstrongNumbers = new int[count];
        int index = 0;
        for (int i = start; i <= end; i++)
        {
            if (IsArmstrongNumber(i))
            {
                armstrongNumbers[index++] = i;
            }
        }

        return armstrongNumbers;
    }

    static bool IsArmstrongNumber(int number)
    {
        int sum = 0;
        int temp = number;
        int digits = 0;

        while (temp > 0)
        {
            digits++;
            temp /= 10;
        }

        temp = number;
        while (temp > 0)
        {
            int digit = temp % 10;
            sum += (int)Math.Pow(digit, digits);
            temp /= 10;
        }

        return sum == number;
    }
}

23、这个逻辑我们可以这样理解,

我们可以修改这个值得出来对应的值,代码如下:

24、因为是3和7整除,所以是21的公倍数,先求和在进行平方根,代码如下:

Console.WriteLine("请输入是哪些以内的整数");
int res = int.Parse(Console.ReadLine());
int sum = 0;
for (int i = 0; i < res; i++)
{
    if (i % 21 == 0)  // 3和7的公倍数
    {
       
        sum = sum + i;

        
    }
}

Console.WriteLine("自然数之和的平方根s:" + Math.Sqrt(sum));

25、自定义一个函数来判断,代码如下:

    public static List<int> GetDivisibleNumbers()
    {
        List<int> divisibleNumbers = new List<int>();

        for (int i = 1; i <= 1000; i++)
        {
            if ((i % 7 == 0 || i % 11 == 0) && !(i % 7 == 0 && i % 11 == 0))   // 能被7或11整除但不能同时被7和11整除的
            {
                divisibleNumbers.Add(i);
            }
        }

        return divisibleNumbers;
    }
}
internal class Program
{

private static void Main(string[] args)
    {
        List<int> numbers = DivisibilityFunction.GetDivisibleNumbers();
        foreach (int number in numbers)
        {
            Console.WriteLine(number);
        }
    }
}

http://www.lryc.cn/news/491598.html

相关文章:

  • 5.5 W5500 TCP服务端与客户端
  • 一区北方苍鹰算法优化+创新改进Transformer!NGO-Transformer-LSTM多变量回归预测
  • 深入理解 MyBatis 的缓存机制:一级缓存与二级缓存
  • 移远通信推出全新5G RedCap模组RG255AA系列,以更高性价比加速5G轻量化大规模商用
  • 架构-微服务-环境搭建
  • conda下载与pip下载的区别
  • MySQL获取数据库内所有表格数据总数
  • Matlab 深度学习工具箱 案例学习与测试————求二阶微分方程
  • django authentication 登录注册
  • 三种蓝牙架构实现方案
  • ffmpeg 视频滤镜:高斯模糊-gblur
  • 期权懂|在期权市场中,如何用好双买期权?
  • 【Linux学习】【Ubuntu入门】2-3 make工具和makefile引入
  • 《黑神话:悟空》游戏辅助修改器工具下载指南与操作方法详解
  • C语言菜鸟入门·关键字·union的用法
  • ensp静态路由实验
  • 构建 Java Web 应用程序:从 Servlet 到数据库交互(Eclipse使用JDBC连接Mysql数据库)
  • mfc100u.dll是什么?分享几种mfc100u.dll丢失的解决方法
  • Java面试之多线程并发篇
  • 视频推拉流EasyDSS互联网直播点播平台技术特点及应用场景剖析
  • 安全加固方案
  • Linux firewall防火墙规则
  • 速盾:CDN缓存的工作原理是什么?
  • 日常开发记录-正确的prop传参,reduce搭配promise的使用
  • Hyper-V配置-cnblog
  • 运维Tips:Docker或K8s集群拉取Harbor私有容器镜像仓库配置指南
  • openssl颁发包含主题替代名的证书–SAN
  • Stable Diffusion入门教程
  • H.265流媒体播放器EasyPlayer.js无插件H5播放器关于移动端(H5)切换网络的时候,播放器会触发什么事件
  • conan2 c/c++包管理入门之--------------------------conanfile.py