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