C# 循环嵌套 练习题

 题目汇总

>>>打印图表

1、输入两个整数n和m,输出n行 m列的*阵。

2、输入整数n,输出n层的三角形。

----

3、输入整数n,输出n层的三角形的斜边(两种)。

---------

4、输入一个正整数n,输出n层的等腰三角形。

----

5、打印九九乘法表

-------------------------------------------------------------------------

>>>综合应用题

一、编写一个程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方等于该数本身。例如153=1*1*1+5*5*5+3*3*3,所以153是“水仙花数”。

---------------------------------------------------

二、数字和字符混合在一起了,作为一个优秀的挖掘人员,把输入的数字挖出来,并计算这些数字的和,并输出。输入以@作为结束。( 样例输入 23a34b34@   样例输出 19 )

---------------------------------------------------

三、对于任意大于1的自然数n,若n为奇数,将n编程3n+1,否则变成n的一半。经过若干次这样的变化,n一定会最终变成1。比如,7→22→11→34→17→52→26→13 →40→20→10 →5→16 → 8→4→ 2→ 1   。输入n,输出变换的次数。如输入3  输出7,输入10,输出6

---------------------------------------------------

四、我国现有x亿人口,按照每年0.1%的增长速度,n年后将有多少人?

---------------------------------------------------

五、农夫约翰在去年赚了一大笔钱!他想要把这些钱用于投资,并对自己能得到多少收益感到好奇。已知投资的复合年利率为R(0到20之间的整数)。约翰现有总值为M的钱(100到1,000,000之间的整数)。他清楚地知道自己要投资Y年(范围0到400)。请帮助他计算最终他会有多少钱,并输出它的整数部分。数据保证输出结果在32位有符号整数范围内。输入三个整数 R,M,Y,输出整数,即最终拥有多少钱。(示例:输入5 ,5000 ,4  输出   6077)

---------------------------------------------------

六、⽤100⽂买鸡,其中公鸡,⺟鸡,⼩鸡,都必须要有,公鸡3⽂⼀只,⺟鸡5⽂⼀只,⼩鸡2⽂⼀只,请问公鸡、⺟鸡、⼩鸡要买多少只刚好凑⾜100⽂,打印出所有可能的情况和总共的个数。

---------------------------------------------------

七、随机输入一个整数num,输出一个新的数,新数恰好与原数每一位上的数字相反。如果原数末尾有多个零,输出的新数高位不含0。(样例输入 8736 样例输出 6378;样例输入2300 样例输出 32)

、、、

解题示例

>>>打印图表

1、输入两个整数n和m,输出n行 m列的*阵。

//输入两个整数n和m,输出n行m列的*阵
Console.Write("请输入行数:");
int n = Convert.ToInt32(Console.ReadLine());
Console.Write("请输入列数:");
int m = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < n; i++)
{
    for (int j = 0; j < m; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();    //换行
}

、、、

2、输入整数n,输出n层的三角形。

样例输入3,样例输出↓

 //输入整数n,输出n层的三角形
 Console.Write("请输入层数:");
 int n = Convert.ToInt32(Console.ReadLine());

 //自增循环
 for (int i = 0; i < n; i++)
 {
     for (int j = 0; j <=i ; j++)
     {
         Console.Write("*");
     }

     Console.WriteLine();
 }

 //自减循环
 for (int i = n; i > 0; i--)
 {
     for (int j = n-i; j >= 0; j--)
     {
         Console.Write("*");
     }

     Console.WriteLine();
 }

、、、

3、输入整数n,输出n层的三角形的斜边(两种)。

样例输入5,样例输出↓

-----------

 //输入整数n,输出n层的三角形的斜边。
 Console.Write("请输入层数:");
 int n = int.Parse(Console.ReadLine());
//第一种  \
for (int i = 0; i < n; i++)             //层数
 {
     for (int j = 0; j < i; j++)        //空格数
     {

         Console.Write(" ");
     }
     Console.WriteLine("*");
 }

 Console.WriteLine();                    //换行

//第二种  /
 for (int i = 1; i <= n; i++)            //层数
 {
     for (int j = n; j > i; j--)         //空格数
     {

         Console.Write(" ");
     }
     Console.WriteLine("*");
 }

、、、

4、输入一个正整数n,输出n层的等腰三角形。

样例输入4,样例输出↓

//输入一个正整数n,输出n层的等腰三角形。
Console.Write("请输入层数:");
int n=int.Parse(Console.ReadLine());
for (int i = 1; i <= n; i++)             //层数
{
    for (int m = n; m > i; m--)         //空格数
    {

        Console.Write(" ");
    }

    for (int j = 0; j  < i*2-1; j++)       //   * 的个数   1 3 5 7 
    {  
        
        Console.Write("*");
    }
    
    Console.WriteLine();//换行


} 

、、、

5、打印九九乘法表

//99乘法表
for (int i = 1; i <= 9; i++)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write($"{j}*{i}={i * j} ");
        //Console.Write("{0}*{1}={2} ",j,i,j*i);
    }
    Console.WriteLine();
}

、、、

>>>综合应用题

一、编写一个程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方等于该数本身。例如153=1*1*1+5*5*5+3*3*3,所以153是“水仙花数”。

//编写一个程序,打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方等于该数本身。例如153=1*1*1+5*5*5+3*3*3,所以153是“水仙花数”。
for (int i = 100; i <= 999; i++)
{
    int a = i / 100;             //百位
    int b = i % 100 / 10;       //十位
    int c = i % 10;             //个位
    if (i == a * a * a + b * b * b + c * c * c)
    {
        Console.WriteLine(i + "是“水仙花数”");
    }
}

、、、

二、数字和字符混合在一起了,作为一个优秀的挖掘人员,把输入的数字挖出来,并计算这些数字的和,并输出。输入以@作为结束。( 样例输入 23a34b34@   样例输出 19 )

//数字和字符混合在一起了,作为一个优秀的挖掘人员,把输入的数字挖出来,并计算这些数字的和,并输出。输入以 @作为结束。  样例输入 23a34b34@   样例输出 19

Console.WriteLine("请输入:");
string str;
string st = "";
int num = 0;
do {
    str = Console.ReadLine();
    st += str;
    if (str == "0" || str == "1" || str == "2" || str == "3" || str == "4" || str == "5" || str == "6" || str == "7" || str == "8" || str == "9")
    {
        num += Convert.ToInt32(str);//字符串转整形  /  num=int.Parse(str);
    }
} while (str != "@");

Console.WriteLine();
Console.WriteLine(st);
Console.WriteLine(num);



//或者
Console.WriteLine("请输入字符:");
string st = ""; //存储输入的字符
Char str;
int num = 0;
do
{
    str =Convert .ToChar( Console.ReadLine());  //输入字符

    st += str;
    if (str >= '0' && str <= '9')
    {
        num += str-'0';
    }
} while (str != '@');


//或者
Console.WriteLine("请输入:");
str = Console.ReadLine();
for (int i = 0; i < str.Length; i++)
{
    if (str[i] >= '0' && str[i]<='9')    //能进来的字符就是数字,比较的ASCAII码
    {
        int sum = str[i] - '0';//将字符数字转化为对应的数字
        num+= sum;
    }



、、、

三、对于任意大于1的自然数n,若n为奇数,将n编程3n+1,否则变成n的一半。经过若干次这样的变化,n一定会最终变成1,比如,7→22→11→34→17→52→26→13 →40→20→10 →5→16 → 8→4→ 2→ 1    输入n,输出变换的次数。如输入3输出7,输入10,输出6

Console.Write("请输入一个大于1的自然数:");
int n = Convert.ToInt32(Console.ReadLine());
Console.Write(n);
int m = 0; //记录变换次数
while (n != 1)//do
{
    if (n % 2 == 1)     //n为奇数
    {
        n = 3 * n + 1;
        
        Console.Write($"→{n}");                   

    }
    else                    //n为偶数
    {
        n =  n / 2;
        Console.Write($"→{n}");
    }
    m++;
    
} 
Console.WriteLine($"\r\n变换了{m}次");

、、、

四、我国现有x亿人口,按照每年0.1%的增长速度,n年后将有多少人?

//我国现有x亿人口,按照每年0.1%的增长速度,n年后将有多少人?
Console.Write("请输入人口数(亿):");
double m = Convert.ToDouble (Console.ReadLine());


Console.Write("请输入增长年数:");
int n = Convert.ToInt32(Console.ReadLine());

for (int i = 0; i < n; i++)
{
    m = m + m * 0.001;
}

Console.WriteLine($"{n}年后将有{m:F2}亿人");

、、、

五、农夫约翰在去年赚了一大笔钱!他想要把这些钱用于投资,并对自己能得到多少收益感到好奇。已知投资的复合年利率为R(0到20之间的整数)。约翰现有总值为M的钱(100到1,000,000之间的整数)。他清楚地知道自己要投资Y年(范围0到400)。请帮助他计算最终他会有多少钱,并输出它的整数部分。数据保证输出结果在32位有符号整数范围内。输入三个整数 R,M,Y,输出整数,即最终拥有多少钱。(示例:输入5 ,5000 ,4  输出   6077)

 Console.Write("请输入投资的复合年利率(0到20之间的整数):");
 int R = Convert.ToInt32(Console.ReadLine());
 Console.Write("请输入要投资的钱(100到1,000,000之间的整数):");
 double M = Convert.ToDouble  (Console.ReadLine());
 Console.Write("请输入要投资的年数(范围0到400):");
 int Y = Convert.ToInt32(Console.ReadLine());

 for (int i = 0; i < Y; i++)
 {
     M = M + R  *0.01* M;
 }

 int c = (int)M; //去除小数部分
 Console.WriteLine("最终拥有:"+ c);

、、、

六、⽤100⽂买鸡,其中公鸡,⺟鸡,⼩鸡,都必须要有,公鸡3⽂⼀只,⺟鸡5⽂⼀只,⼩鸡2⽂⼀只,请问公鸡、⺟鸡、⼩鸡要买多少只刚好凑⾜100⽂,打印出所有可能的情况和总共的个数。

int num = 0;
for(int G = 1; G <= 33; G++) { 
    for (int M = 1; M <= 20; M++) {
        for (int X = 1; X <= 50; X++) {
            if (G * 3 + M * 5 + X * 2 == 100)
            {
                Console.WriteLine($"公鸡{G}只,母鸡{M}只,小鸡{X}只");
                num++;
            }
        
        }

    }         

}
Console.WriteLine($"一共{num}种情况");

、、、

七、 随机输入一个整数num,输出一个新的数,新数恰好与原数每一位上的数字相反。如果原数末尾有多个零,输出的新数高位不含0。(样例输入 8736 样例输出 6378;样例输入2300 样例输出 32)

//随机输入一个整数num,输出一个新的数,新数恰好与原数每一位上的数字相反。(如果原数末尾有多个零,输出的新数高位不含0)  样例输入 8736 样例输出 6378   样例输入2300 样例输出 32

Console.Write("请输入一个整数:");
int num = Convert.ToInt32(Console.ReadLine());
int c = 0;            
while(num != 0)     //当有几位数的时候,循环几次,将每一位都提取出来,num=0时,跳出循环,即不需要继续循环,因为0时已经没有任何一个数字
{
    int b = num % 10;        //取 最后一位数字
    num /= 10;            //去除 最后一位数字                                                          
    c = c*10+b;           //倒序重组数据        

}

Console.WriteLine("重组的数为:{0}", c);

//或者使用数组

Console.Write("请输入一个整数:");
string num = Console.ReadLine();
string sum = "";
for (int i = num.Length - 1; i >= 0; i--)
{ 
sum += num[i];
Console.WriteLine(num[i]);
}
int num2 = int.Parse(sum); //转换为int型自动去除前面得0;
Console.WriteLine(num2);

在C#中输入一个数,表示出每一位数字分别是多少https://blog.csdn.net/2301_76186730/article/details/129105483?fromshare=blogdetail&sharetype=blogdetail&sharerId=129105483&sharerefer=PC&sharesource=LZQqqqqo&sharefrom=from_link

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值