namespace foboni
{
class Program
{
static void Main(string[] args)
{
int i, j;
string s;
aa: Console.Write("请输入一个整数:");
s = Console.ReadLine();
j = int.Parse(s);
if(j > 45||(j <= 1))
{
Console .Write ("输入错误,请重新输入!");
goto aa;
}
else
{
int[] f = new int[j];
f[0] = f[1] = 1;
for (i = 2; i < j; i++)
f[i] = f[i - 1] + f[i - 2];
for (i = 0; i < j; i++) //控制列的循环数量
{
string[] str = new string[j];
str[i] = f[i].ToString();
if (i % 4 == 0)
Console.WriteLine();
if (str[i].Length <= 7)
Console.Write("{0}\t\t", f[i]);
else
Console.Write("{0}\t", f[i]);
}
}
Console.Read();
}
}
}
问题:str[i]=f[i].ToString();是干什么用的?
參考答案:把f[i]转化成一个字符串,这样才能用str[i].Length来获取这个字符串的长度,也就是f[i]的数字位数。
这是为后面那个if(str[i].Length<=7)...语句服务的。
这个语句的意思是,如果f[i]数字位多于七位,就在输出f[i]之后输出一个\t(制表符),如果不多于七位,就输出两个\t,也就是说通过这个判断保证了每个f[i]都占两个制表符(16格)的位置。