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);

}

}

}

相关推荐
查理零世25 分钟前
【蓝桥杯集训·每日一题2025】 AcWing 6134. 哞叫时间II python
python·算法·蓝桥杯
仟濹26 分钟前
【二分搜索 C/C++】洛谷 P1873 EKO / 砍树
c语言·c++·算法
紫雾凌寒35 分钟前
解锁机器学习核心算法|神经网络:AI 领域的 “超级引擎”
人工智能·python·神经网络·算法·机器学习·卷积神经网络
京东零售技术1 小时前
AI Agent实战:打造京东广告主的超级助手 | 京东零售技术实践
算法
视觉人机器视觉1 小时前
机器视觉中的3D高反光工件检测
人工智能·3d·c#·视觉检测
CodeCraft Studio2 小时前
文档处理控件TX Text Control系列教程:使用 .NET C# 从 PDF 文档中提取基于模板的文本
pdf·c#·.net
一念春风2 小时前
C# 背景 透明 抗锯齿 (效果完美)
开发语言·c#
且听风吟ayan2 小时前
leetcode day19 844+977
leetcode·c#
MiyamiKK572 小时前
leetcode_位运算 190.颠倒二进制位
python·算法·leetcode
C137的本贾尼2 小时前
解决 LeetCode 串联所有单词的子串问题
算法·leetcode·c#