1个回答
展开全部
参考代码和注释如下:
using System;
namespace LoopDemo
{
class Program
{
static void Main(string[] args)
{
Q1();//题目1的代码
ShuiXianHua();//题目2的代码
Console.ReadKey();
}
private static void Q1() //下面是3个for循环, 如果学了StringBuilder来拼接字符串 那么可以把3个循环写成1个
{
//第一步: 生成20个随机数[10,100]之间
int[] nums = new int[20];
Random r = new Random();
for (int i = 0; i < nums.Length; i++)
{
nums[i] = r.Next(10, 101);//能随即到10,不能随即到101,结果就是[10,100]闭区间的数
}
//第二步: 每行输出5个
Console.WriteLine("数组的全部元素如下:");
for (int i = 0; i < nums.Length; i++)
{
if ((i + 1) % 5 == 0) //因为i从0开始,所以第一个数应该是0+1 ,依次类推就是i+1。如果是5,10,15,20这几个数,能被5整除,就换行
{
Console.WriteLine(nums[i]);//换行输出
}
else
{
Console.Write(nums[i] + "\t");//不换行输出,另外后面追加一个Tab制表符隔开
}
}
//第三步: 输出能被3整除的数字
Console.WriteLine("能被3整除的数字");
for (int i = 0; i < nums.Length; i++)
{
if (nums[i] % 3 == 0)//如果能被3整除
{
Console.Write(nums[i] + "\t");//输出
}
}
Console.WriteLine();
}
private static void ShuiXianHua()
{
Console.WriteLine("三位数的水仙花数如下:");
for (int i = 100; i < 1000; i++)
{
int b = i / 100; //百位
int s = i % 100 / 10;//十位
int g = i % 10;//个位
if (b * b * b + s * s * s + g * g * g == i)
{
Console.Write(i + "\t");
}
}
Console.WriteLine();
}
}
}
附: 使用StringBuilder来减少for循环次数 ,
命名空间添加1个
using System.Text; //StringBuilder
private static void Loop2()
{
int[] nums = new int[20];
Random r = new Random();
StringBuilder sb1 = new StringBuilder();//可变字符串 ,用于输出数字
StringBuilder sb2 = new StringBuilder();// 用于输出能被3整除的数字
for (int i = 0; i < nums.Length; i++)
{
nums[i] = r.Next(10, 101);//能随即到10,不能随即到101,结果就是[10,100]闭区间的数
if ((i + 1) % 5 == 0) //因为i从0开始,所以第一个数应该是0+1 ,依次类推就是i+1。如果是5,10,15,20这几个数,能被5整除,就换行
{
sb1.Append(nums[i] + Environment.NewLine);//拼接字符串 并且追加换行符
}
else
{
sb1.Append(nums[i] + "\t");//不换行 ,且后面追加一个Tab制表符隔开
}
if (nums[i] % 3 == 0)//如果能被3整除
{
sb2.Append(nums[i] + "\t");//拼接字符串
}
}
Console.WriteLine("数组的全部元素如下:");
Console.Write(sb1); //输出
Console.WriteLine("能被3整除的数如下:");
Console.WriteLine(sb2);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询