高手进来试试小学三年级奥数题,测试一下你的能力 图形为一 由5行8列40个小正方形组成一大长方形,问这个图中有几个长方形??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试一下这个算法对不对?没有验证a=0for (k = 1; k<=5 ;k++){ for (i=k;i<=8;i++) { for (j=k;j<=5;j++) { a=a+1; } if (i<=5) { a=a-1; } }} a=0for (k = 1; k<=5 ;k++){ for (i=k;i<=8;i++) { for (j=k;j<=5;j++) { a=a+1; } if (i<=5) { a=a-1; } }} 应该这个答案是正确的。大家试试验证一下。看有谁看出思路。a=0for (L = 1; L<=8 ;L++){ for (k = 1; k<=5 ;k++) { for (i=L;i<=8;i++) { for (j=k;j<=5;j++) { a=a+1; } if (i<=5) { a=a-1; } } } } 想了一下,还是有点不对;再改,凭空想的。没有验证!呵呵。a=0for (L = 1; L<=8 ;L++){ for (k = 1; k<=5 ;k++) { for (i=1;i<=8-L;i++) { for (j=1;j<=5-k;j++) { a=a+1; } if (i<=5) { a=a-1; } } } } 答案是440.经测试,完全正确。 static void Main() { int m = 5, n = 8; long count = 0; for(int i = 0;i < n;i++) for(int j = 0;j < m;j++) for(int p = i + 1;p <= n;p++) for(int q = j + 1;q <= m;q++) if(p - i != q - j) count++; Console.WriteLine(count); }像这样的题目,学过编程的人应该都能做出来啊!不就是几个for吗?这样的题目在我们开始学编程的时候是经常出的。而且这样的题目也是有数学方法的。 长8,宽5 1*1个长8,宽4 1*2个...长8,宽1 1*5个长7,宽5 2*1个长7,宽4 2*2个...长7,宽1 2*5个...长1,宽1 8*5个如果要求长宽不一样的话,减去长宽相同的长5,宽5 4*1个长4,宽4 5*2个...长1,宽1 8*5个sum = 1*1 + 1*2 +...+ 8*5 - 4*1 - 5*2 -...-8*5 // 如果长宽要求不一样的话所以写成代码的话如下int sum = 0;for(int i=1;i<=8;i++){ for(int j=1;j<=5;j++) { sum += i*j; }}//如果需要长宽不一样的话for(int i=1;i<=5;i++){ sum -= i*i;} 经过数学归纳法总结得出mxn的矩阵总个数为(m*(m+1)/2) * (n*(n+1)/2)1X1 为 1个1X2 为 3个1X3 为 6个1X4 为 10个2X2 为 9个2X3 为 18个.......mXn 为 (m*(m+1)/2) * (n*(n+1)/2)证明从略 gdi+ 图片放大cpu使用率很高的问题 关于DataGridView 导出到excel的问题 发现使用Xenocode\混淆后的程序 找不到类型或命名空间名称“SQLDMO”(是否缺少 using 指令或程序集引用?) 急!急!急!我在c#中引用excel的 dll,成功。但是在程序中写using Microsoft.Office.Interop 它就提示Interop 错误 c#中设计模式应该怎么用? winform打包 数据库操作的类的问题 网页中textbox光标闪烁太快,怎样变慢 水晶报表10的问题 客户端无法连接sql 2005 大家装Vs2008时见过这个窗口吗?
a=0
for (k = 1; k<=5 ;k++)
{
for (i=k;i<=8;i++)
{
for (j=k;j<=5;j++)
{
a=a+1;
}
if (i<=5)
{
a=a-1;
}
}
}
a=0
for (k = 1; k<=5 ;k++)
{
for (i=k;i<=8;i++)
{
for (j=k;j<=5;j++)
{
a=a+1;
}
if (i<=5)
{
a=a-1;
}
}
}
看有谁看出思路。a=0
for (L = 1; L<=8 ;L++)
{
for (k = 1; k<=5 ;k++)
{
for (i=L;i<=8;i++)
{
for (j=k;j<=5;j++)
{
a=a+1;
}
if (i<=5)
{
a=a-1;
}
}
}
}
for (L = 1; L<=8 ;L++)
{
for (k = 1; k<=5 ;k++)
{
for (i=1;i<=8-L;i++)
{
for (j=1;j<=5-k;j++)
{
a=a+1;
}
if (i<=5)
{
a=a-1;
}
}
}
}
static void Main()
{
int m = 5, n = 8;
long count = 0;
for(int i = 0;i < n;i++)
for(int j = 0;j < m;j++)
for(int p = i + 1;p <= n;p++)
for(int q = j + 1;q <= m;q++)
if(p - i != q - j)
count++;
Console.WriteLine(count);
}
像这样的题目,学过编程的人应该都能做出来啊!
不就是几个for吗?
这样的题目在我们开始学编程的时候是经常出的。
而且这样的题目也是有数学方法的。
长8,宽4 1*2个
...
长8,宽1 1*5个
长7,宽5 2*1个
长7,宽4 2*2个
...
长7,宽1 2*5个
...
长1,宽1 8*5个如果要求长宽不一样的话,减去长宽相同的长5,宽5 4*1个
长4,宽4 5*2个
...
长1,宽1 8*5个sum = 1*1 + 1*2 +...+ 8*5
- 4*1 - 5*2 -...-8*5 // 如果长宽要求不一样的话所以写成代码的话如下int sum = 0;
for(int i=1;i<=8;i++)
{
for(int j=1;j<=5;j++)
{
sum += i*j;
}
}//如果需要长宽不一样的话
for(int i=1;i<=5;i++)
{
sum -= i*i;
}
总个数为(m*(m+1)/2) * (n*(n+1)/2)
1X1 为 1个
1X2 为 3个
1X3 为 6个
1X4 为 10个
2X2 为 9个
2X3 为 18个
.......
mXn 为 (m*(m+1)/2) * (n*(n+1)/2)证明从略