自学内容网 自学内容网

c#控制台程序26-30

26.寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。请编制函数实现此功能,如果是回文数,则函数返回1,反之则返回0。最后把结果输出。

27.键盘上任意输入一个十进制整数,请编制函数,将该整数转换成二进制数并把已转换的二进制数存放在字符串数组x中,最后调用函数把结果输出。

28.用键盘输入一个16进制数,并将该16进制数转换为二进制输出。

29.设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第个m人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现要求按出圈次序,每10人一组,输出这n个人的顺序表在控制台。

30.读取一篇英文文章存入到字符串数组x中,请编制函数,其功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组x中,最后调用函数把结果x输出。

例如:原文:  You ,He, Me。 I  am  a  student。

   结果:Me He You                student a am I

26、首先定义一个函数是否是回文代码如下:

27、我们要定义一个转换的方法,代码如下:

private static void Main(string[] args)
{
    Console.WriteLine("请输入一个十进制整数:");
    int s = Convert.ToInt32(Console.ReadLine());
    Console.WriteLine("二进制结果是:"+ DecimalToBinary(s));
}
public static string DecimalToBinary(int decimalNumber)
{
    return Convert.ToString(decimalNumber, 2);
}

28代码如下:

Console.WriteLine("请输入16进制是: ");
string hexNumber = Console.ReadLine();
byte[] hexBytes = new byte[hexNumber.Length / 2];

for (int i = 0; i < hexBytes.Length; i++)
{
    int index = i * 2;
    hexBytes[i] = Convert.ToByte(hexNumber.Substring(index, 2), 16);
}

Console.WriteLine("16进制是: " + hexNumber);
Console.WriteLine("二进制结果是: ");

foreach (byte b in hexBytes)
{
    string binaryString = Convert.ToString(b, 2).PadLeft(8, '0');
    Console.WriteLine(binaryString);
}

29、代码如下:

private static void Main(string[] args)
{
    Console.WriteLine("请输入总人数:");

    int n = Convert.ToInt32(Console.ReadLine());  // 总人数
    int s = 1; // 开始报数的位置
    int m = 10; // 报数的间隔
    List<int> people = new List<int>();
    for (int i = 1; i <= n; i++)
    {
        people.Add(i); // 初始化编号
    }
    List<int> result = JosephusProblem(people, s, m);
    foreach (var id in result)
    {
        Console.WriteLine(id); // 输出出圈顺序
    }
}

static List<int> JosephusProblem(List<int> people, int s, int m)
{
    List<int> result = new List<int>(); // 存储出圈顺序的列表
    while (people.Count > 0)
    {
        int index = s - 1; // 计算当前报数的位置(数组索引从0开始)
        index = index % people.Count; // 处理环形结构
        result.Add(people[index]); // 将出圈的人添加到结果列表中
        people.RemoveAt(index); // 从列表中移除该人
        s++; // 下一次报数从下一个人开始
        if (s > people.Count) s = 1; // 如果s超过当前人数,重置s为1
    }
    return result; // 返回出圈顺序的列表
}

30、首先定义一个方法来过滤特殊字符,数组进行倒序排列用到reserve方法,代码如下

private static void Main(string[] args)
{
    string article = "You ,He, Me。 I  am  a  student。";
    string[] words = SplitArticleIntoWords(article);  // 方法
    Array.Reverse(words); // 倒序
    foreach (string word in words)
    {
        Console.Write(word); // 输出
    }
}

static string[] SplitArticleIntoWords(string article)
{
    char[] separators = new char[] { ',', '.', '!', '?', ';', ',' ,'。',' '}; // 过滤特殊字符
    string[] words = article.Split(separators, StringSplitOptions.RemoveEmptyEntries);
    return words;
}


原文地址:https://blog.csdn.net/weixin_44498188/article/details/144038833

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!