using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//分别用“☆”,“★”,组合出一个菱形
Console.Write("请输入一个整数:");
int a = int.Parse(Console.ReadLine());
for (int i = 1; i <= a; i++)
{
//首先组件上半部分的等腰三角形
//第一行需要一个五角星,则空白需要(a-1)个,依次循环减少一个空白
for (int j = a-1; j >= i; j--)
{
Console.Write(" ");
}
for (int k = 1; k <= i; k++)//第一次一个五角星,依次循环增加一个
{
Console.Write("☆");
}
//第一行只需要一颗星,第一次应该跳过,因此第一次l>1,从第二次外循环到此条件成立,开始循环
for (int l = 2; l <= i; l++)
{
Console.Write("☆");
}
Console.WriteLine();//上面的等腰三角形结束
}
//因为菱形中间一行需要最长,所以此循环要比上个循环少一次,则需要(a-1)
for (int u = 1; u <= a-1; u++)
{
for (int m = 1; m <= u; m++) //第一行需要一个空白,之后依次叠加
{
Console.Write(" ");
}
for (int n = a-1; n >= u; n--) //此循环是菱形中间最长的下一行,因此减少一次(a-1)
{
Console.Write("★");
}
for (int o = a-2; o >= u; o--)//等腰三角形的最下端是一颗星,已被上个循环占用,因此
{ //这个循环要少一颗星,少一次循环(a-2)
Console.Write("★");
}
Console.WriteLine();//循环结束
}
Console.ReadLine();
//有一对幼兔,幼兔1个月后长成小兔,小兔一个月后长成成兔并生下一对幼兔,问几年后有多少兔子,幼兔、
//小兔、成兔对数分别是多少。成兔每月生下一对幼兔。
//本月的成兔=上月的小兔+上月的成兔。
//本月的小兔=上月的小兔。
//本月的幼兔=本月的成兔。
Console.Write("请输入月数:");
int m = int.Parse(Console.ReadLine());
int ct = 0;//成兔对数ct
int xt = 0;//小兔对数xt
int yt = 1;//幼兔的对数yt
int zt = 1;//总兔对数zt
for(int i=1;i<=m;i++)
{
if(i==1)//定义第一个月的成兔幼兔小兔对数
{//(告诉电脑第一个月兔子的对数)
ct=0;//第一个月成兔对数=0
xt=0;//第一个月小兔对数=0
yt=1;//第一个月幼兔对数=1
}
else
{
ct=xt+ct;//每月成兔对数等于上月小兔对数+上月成兔对数
xt=yt;//每月小兔对数等于上月幼兔对数
yt=ct;//每月幼兔对数等于本月的成兔对数
}
zt=ct+xt+yt;//总兔对数等于成兔加小兔加幼兔
Console.WriteLine(i.ToString()+"个月后成兔的对数是:"+ct.ToString());
Console.WriteLine(i.ToString()+"个月后小兔的对数是:"+xt.ToString());
Console.WriteLine(i.ToString()+"个月后幼兔的对数是:"+ct.ToString());
Console.WriteLine(i.ToString()+"个月后兔子的总对数是:"+zt.ToString());
Console.ReadLine();
}
Console.ReadLine();