求三重for循环的总共循环次数,代码如下:
两个for循环代码如下:
int n=100;
for(int i =0;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
//doSomeThings.....
}
}
对于这个两层的循环可以得出它一共做了((n+1)*n)/2次循环。推导过程如下:
i=0时:里层循环做n次;i=1时,里层循环做n-1次;i=2时,里层循环做n-2次……,如此,直到里层循环做3次,2次,1次,或0次。那总循环次数则为:n+(n-1)+(n-2)+……+3+2+1+0.根据等差数列求和知识可以得出结果为:((n+1)*n)/2次。但是,但是,如果是三重循环,或者四层五层的,也有什么公式吗?望高人赐教,并耐心写下推导过程。不胜感激!三个for循环代码如下:
int n=100;
for(int i =0;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
for(int k=0;k<n-i-j;k++)
{
//doSomeThings.....
}
}
}
两个for循环代码如下:
int n=100;
for(int i =0;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
//doSomeThings.....
}
}
对于这个两层的循环可以得出它一共做了((n+1)*n)/2次循环。推导过程如下:
i=0时:里层循环做n次;i=1时,里层循环做n-1次;i=2时,里层循环做n-2次……,如此,直到里层循环做3次,2次,1次,或0次。那总循环次数则为:n+(n-1)+(n-2)+……+3+2+1+0.根据等差数列求和知识可以得出结果为:((n+1)*n)/2次。但是,但是,如果是三重循环,或者四层五层的,也有什么公式吗?望高人赐教,并耐心写下推导过程。不胜感激!三个for循环代码如下:
int n=100;
for(int i =0;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
for(int k=0;k<n-i-j;k++)
{
//doSomeThings.....
}
}
}
解决方案 »
- JScrollPane为什么无法显示到jframe或者jpanel上
- 【请教】ObjectOutputStream操作对象时,在读取对象的属性为什么会丢失。
- 关于static变量的用法
- 讨论:关于jdk1.5,有没有人用过呢?感觉怎么样?我们现在需要把1.4升到1.5吗?
- 为什么在2k下无法运行jdk1.2.2 version?
- 如何改变JOptionPane.showMessageDialog显示的字体
- 在设置环境变量时,打开我的电脑属性,却出现对指定设备,路径或文件的访问被拒绝!我该怎么办啊,急!急!急!
- 如何判断String为空?
- 菜鸟疑问:package
- 有谁在digital unix 4.0d上装tomcat或者resin的经验?请教。
- SOS
- 一个简单的算术问题
二次循环你也得到:(n+1)*n/2。
当再加三次循环时就是:
(n+1)*n/2 + n*(n-1)/2 + (n-1)*(n-2)/2 ++(2+1)*2/2 + (1+1)*1/2;====>
n+(n-1)+(n-2)+……+3+2+1+0 +
(n-1)+(n-2)+……+3+2+1+0 +
................ +
1+0 =
n + 2*(n-1) + 3*(n-2) +..............+(n-1)*2 + n*1 + (n+1)*0 =当然现在要看n是奇数 ,还是偶数。
奇数:2*n + 4*(n-1) + ..............+ ((n+1)/2)*((n+1)/2)
偶数:2*n + 4*(n-1) + ..............+ 2*(n/2)*(n/2)
递归就可以实现:
// 接收的参数n被调用者传入,然后根据其执行指定次数的for循环。
void vir(int n) {
for (int i = 0; i < n; i++) {
// 接收的n-i在上层n的基础上增加了-i,具体自己分析一下吧!
vir(n - i);
}
}
有兴趣请加入QQ的JAVA聊天群: http://topic.csdn.net/u/20081211/01/f40f4796-ef52-4bd6-aa56-8adee47c9505.html