C#基础41-45

server/2024/11/28 18:07:03/

41. 利用如下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:
(1)取X1初值为0.0;
(2)X0=X1,把X1的值赋给X0;
(3)X1=COS(X0),求出一个新的X1;
(4)若X0-X1绝对值小0.000001,执行步骤(5),否则执行步骤(2);
 (5)所求X1就是方程cos(X)-X=0的一个实根,作为函数值返回。
请编写函数实现程序的要求,最后调用函数把结果输出到控制台。

42.计算出自然数m和n,它们满足的条件是m+m+m=n+n的个数cn,以及满足此条件所有的m与n的和SUM。请编写函数实现程序的要求,最后调用函数把结果cn和sum输出到控制台。

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

44.数组x中有n个数,求出奇数的个数cn1和偶数的个数cn2以及数组x下标为奇数的元素值的算术平均值pj(保留2位小数)。结果cn1,cn2,pj输出到控制台。

45.数组x中有n个数,求出奇数的个数cn1和偶数的个数cn2以及数组x值为奇数的元素值的算术平均值pj(保留2位小数)。结果cn1,cn2,pj输出到控制台。

41、这里我们可以直接调用cos方法,代码如下:

 private static void Main(string[] args)
 {
     double root = FindRootCos(0.0, 0.000001); // 初值为0.0,迭代精度为0.000001
     Console.WriteLine($"方程 cos(x) - x = 0 的一个实根为: {root}");
 }

 // 实现迭代方法求解方程 cos(x) - x = 0 的根
 static double FindRootCos(double x1, double tolerance)
 {
     double x0 = x1; // 初始化x0为x1

     do
     {
         x0 = x1; // 更新x0的值
         x1 = Math.Cos(x0); // 计算新的x1值
     } while (Math.Abs(x0 - x1) > tolerance); // 检查迭代是否满足精度要求

     return x1; // 返回计算得到的根
 }

42、首先这里我们要小于自然数intmax,要不然会溢出,代码如下:

 private static void Main(string[] args)
 {
     (int cn, int sum) = CalculateMAndNSum(); // 调用函数计算并接收返回值

     Console.WriteLine($"满足条件的自然数对(m, n)的个数 cn: {cn}");
     Console.WriteLine($"这些数对(m, n)的和 sum: {sum}");
 }

 // 计算满足条件的自然数对(m, n)的个数cn,以及它们的和sum
 static (int, int) CalculateMAndNSum()
 {
     int cn = 0; // 满足条件的自然数对(m, n)的个数
     int sum = 0; // 满足条件的自然数对(m, n)的和

     for (int m = 1; m <= 2147483647 / 3; m++) // m的最大值要小于等于INT_MAX/3
     {
         int n = m + m / 3; // 根据条件 m+m+m=n+n 计算n的值

         // 如果n是自然数且满足m+m+m=n+n,则计算这些数对的和
         if (n < int.MaxValue / 2 && m * 3 == n * 2)
         {
             cn++; // 增加计数
             sum += m + n; // 累加满足条件的数对的和
         }
     }

     return (cn, sum); // 返回计数和和
 }

43、之前有写过,可以直接调用方法,代码如下:

private static void Main(string[] args)
{
    int n = 100; // 例如,设置n为100,您可以修改这个值来测试不同的n
    double s = SumOfMultiplesOf3And7(n); // 调用函数计算平方根s
    Console.WriteLine($"小于{n}的所有同时能被3和7整除的自然数之和的平方根s为: {s}");
}

// 计算小于n的所有同时能被3和7整除的自然数之和的平方根s
static double SumOfMultiplesOf3And7(int n)
{
    int sum = 0; // 初始化和为0
    for (int i = 3; i < n; i++)
    {
        // 同时检查能否被3和7整除
        if (i % 3 == 0 && i % 7 == 0)
        {
            sum += i; // 累加符合条件的数
        }
    }

    // 计算和的平方根并返回
    return Math.Sqrt(sum);
}

44、定义一个函数AnalyzeArray来分析数组x,计算奇数和偶数的个数以及数组中下标为奇数的元素值的算术平均值。然后,我们调用这个函数,并将结果输出到控制台.代码如下:

private static void Main(string[] args)
{
    // 示例数组x,你可以替换为其他数组以进行测试
    int[] x = { 1, 4, 3, 7, 10, 9 };
    int n = x.Length; // 数组x的长度

    // 调用函数分析数组x
    var (cn1, cn2, pj) = AnalyzeArray(x);

    // 输出结果到控制台
    Console.WriteLine($"奇数的个数cn1: {cn1}");
    Console.WriteLine($"偶数的个数cn2: {cn2}");
    Console.WriteLine($"数组下标为奇数的元素值的算术平均值pj(保留2位小数): {pj:F2}");
}

// 分析数组x,计算奇数和偶数的个数以及下标为奇数的元素的算术平均值
static (int cn1, int cn2, double pj) AnalyzeArray(int[] x)
{
    int cn1 = 0; // 奇数的个数
    int cn2 = 0; // 偶数的个数
    double sumOddIndexElements = 0; // 下标为奇数的元素值的总和
    int oddIndexCount = 0; // 下标为奇数的元素的个数

    for (int i = 0; i < x.Length; i++)
    {
        // 计算奇数和偶数的个数
        if (x[i] % 2 == 0)
        {
            cn2++;
        }
        else
        {
            cn1++;
            if (i % 2 == 1) // 下标为奇数
            {
                sumOddIndexElements += x[i];
                oddIndexCount++;
            }
        }
    }

    // 计算下标为奇数的元素的算术平均值,注意要除以个数,而不是数组长度
    double pj = oddIndexCount > 0 ? sumOddIndexElements / oddIndexCount : 0;

    return (cn1, cn2, pj); // 返回奇数的个数、偶数的个数和算术平均值
}

45、跟44一样,只不过下标换成值了,那我们可以稍微改下:代码就不写了,效果图如下


http://www.ppmy.cn/server/145686.html

相关文章

基于springboot的登录校验

&#x1f525;基于springboot的登录校验&#x1f525; 文章目录 &#x1f525;基于springboot的登录校验&#x1f525;1. JWT令牌2. 过滤器Filter3. 拦截器Interceptor &#x1f680; 开篇寄语&#xff1a; 还在为Spring Boot项目的登录校验而一筹莫展吗&#xff1f;本篇实战教…

《Opencv》基础操作<1>

目录 一、Opencv简介 主要特点&#xff1a; 应用领域&#xff1a; 二、基础操作 1、模块导入 2、图片的读取和显示 &#xff08;1&#xff09;、读取 &#xff08;2&#xff09;、显示 3、 图片的保存 4、获取图像的基本属性 5、图像转灰度图 6、图像的截取 7、图…

第12章 手写Spring MVC

第十二章 手写Spring MVC 12.1 基本结构搭建 12.1.1 创建Maven模块 12.1.2 引入Servlet依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XM…

iframe温习+应用

文章目录 iframe 一、iframe的优缺点&#xff08;一&#xff09;优点&#xff08;二&#xff09;缺点 二、iframe基础应用&#xff08;一&#xff09;基本语法&#xff08;二&#xff09;在实际场景中的应用 三、iframe在无界微前端中的应用解析&#xff08;一&#xff09;沙箱…

QT QVerticalSpacer控件 全面详解

本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizontalSpacer)、…

ElasticSearch通过es-head插件安装可视化及相关问题

1.es-head下载地址 GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster 2.启动 建议使用vscode启动&#xff0c;并安装好node.js环境 npm installnpm run start 通过http://localhost:9100就可以看到本地添加的es库 3.相关问题 3.1跨域问…

Python从0到100(七十三):Python OpenCV-OpenCV实现手势虚拟拖拽

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

uniapp中的事件:v-on

uni中的事件 1.v-on事件绑定 v-on 指令&#xff0c;它用于监听 DOM 事件。v-on缩写为‘ ’&#xff0c;下文简称为 事件 <!-- 完整语法 --><view v-on:click"doSomething">点击</view><!-- 缩写 --><view click"doSomething"…