求1,3,6,10,15,21……的和
<form action="http://192.168.16.20" method="post"><input type="text" name="myn" >
<input type="submit" value="计算" name="myn" >
</form>
<%
dim i,j,t,s,n
s=0
n=request.form("myn")
for i=1 to n
for j=1 to i
t=0
t=t+i
next
s=s+t
next
response.write s
%>
本题目:(求1,3,6,10,15,21……的和),本题目调试不出来,请求各位侠人了。 --------------------编程问答-------------------- 发错地方了,这是 vb 吧 --------------------编程问答-------------------- t=0
for i=1 to n
t+=i
next --------------------编程问答-------------------- t=0
for i=1 to n
t+=i
next --------------------编程问答-------------------- 这是算法问题,算法问题和语言没什么关系
int x = 6;
int sum = 0;
int count = 1;
int s = 0;
for(int i =1; i <= x; i++)
{
sum += count;
s += sum;
count = count + 1;
}
Response.Write(s);
还可以优化一下 --------------------编程问答-------------------- 递归。。
i+fn(i-1) --------------------编程问答-------------------- 看着像作业。。。 --------------------编程问答-------------------- int x = 6;
int sum = 0;
int count = 1;
int s = 0;
for(int i =1; i <= x; i++)
{
sum += count;
s += sum;
count = count + 1;
}
Response.Write(s);
--------------------编程问答-------------------- 你输入myn的是数列的项数,还是最后一项,在你的例子里,1,3,6,10,15,21……,是项数6项,还是最后的21? --------------------编程问答-------------------- 另外,你的页面布局里有重名name="myn" --------------------编程问答--------------------
是啊 --------------------编程问答-------------------- 这个用c#写是不如vb --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答--------------------
right --------------------编程问答-------------------- C#的可以参考下
--------------------编程问答-------------------- sum=n*(n+1)*(n+2)/6
protected void ASPxButton1_Click(object sender, EventArgs e)
{
int num =Convert.ToInt32(this.ASPxTextBox1.Text);
int count = 0;
int sum = 0;
for (int i = 1; i <= num; i++)
{
count += i;
sum +=count;
}
this.ASPxTextBox2.Text = sum.ToString();
}
--------------------编程问答-------------------- n
是从1开始的数字个数 --------------------编程问答-------------------- 就是后面减去前面得2、3、4、5、6、7、8这样一个算法吗?自己去写不就行了 --------------------编程问答--------------------
这才是正解
--------------------编程问答-------------------- --------------------编程问答--------------------
可以。。。 --------------------编程问答-------------------- 测试已通过
<%
dim n
dim i
dim j
dim result
n=request.form("myn")
j=1
result=0
for i=1 to n
result=result+j
j=(i+1)+j
next
response.write("1+3+6+10+......="+cstr(result))
%>
j表示数列的某一项;j=(i+1)+j在前一项基础上增加(i+1),供下一次循环时使用 --------------------编程问答--------------------
--------------------编程问答-------------------- --------------------编程问答-------------------- 1,3,6,10,15,21 ...
int GetSum(int n)
{
int nSum = 0, nLast = 1;
for (int i = 0; i < n; i++)
{
nSum += nLast;
nLast += i + 2;
}
return nSum;
}
1 = 1
3 = 1 + 2
6 = 1 + 2 + 3
10 = 1 + 2 + 3 + 4
15 = 1 + 2 + 3 + 4 + 5
...
明白了吧。
function int _sum (int n)
{
int sum = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= i; j++)
{
sum = sum + j;
}
}
return sum;
}
static void main()
{
int s = _sum(10);
} --------------------编程问答--------------------
这不是面试题么? --------------------编程问答-------------------- php版
--------------------编程问答-------------------- 不好意思!贴发多余了 --------------------编程问答--------------------
<?php
$sum = 0;
for($i=0,$n=5;$i<$n;$i++){
$sum += ($n-$i)*($i+1);
}
echo $sum;
--------------------编程问答-------------------- 以后作业不会做都可以在这里发布 --------------------编程问答-------------------- 数列求和,有公式的,直接用公式就可以算出来了。 --------------------编程问答-------------------- 用C#写了一段:
function a(n) {
if (n == 0)
return 0;
return n + a(n - 1);
}
--------------------编程问答--------------------
int arrLength;
int sum = 0;
int a = 1;
int b = 3;
Console.Write("请输入数组元素的数目:");
arrLength = int.Parse(Console.ReadLine());
if (arrLength == 1)
{
sum = 1;
Console.WriteLine("数组元素为:{0}",a);
Console.WriteLine(sum);
}
else if (arrLength==2)
{
sum=4;
Console.WriteLine("数组元素为:{0}, {1}", a, b);
Console.WriteLine(sum);
}
else if (arrLength>2)
{
sum = a+b;
Console.Write("数组元素为:{0}, {1}", a, b);
for (int i = 2; i < arrLength; i++)
{
int temp = b;
b = b + ( b - a + 1);
a = temp;
sum = sum + b;
Console.Write(", {0}",b);
}
Console.WriteLine();
Console.WriteLine("数组元素的总和是:{0}。",sum);
Console.ReadLine();
如何设置循环次数别太大,更好的控制n的值? --------------------编程问答--------------------
--------------------编程问答-------------------- 如何设置循环次数别太大,更好的控制n的值?
//引用楼上的代码
/*
1,3,6,10,15,21 ...
1 = 1
3 = 1 + 2
6 = 1 + 2 + 3
10 = 1 + 2 + 3 + 4
15 = 1 + 2 + 3 + 4 + 5
...
终上可看出每项都是由一个等差数列的和(,此有多种算法,这只是其中的一种算法)
*/
function int _sum (int n)
{
int sum = 0;
for (int i = 1; i <= n; i++)
{
/* for (int j = 1; j <= i; j++)//这个for是多余的,影响性能,应直接用等差数列求和公式
{
sum = sum + j; //Sn=n(a1+an)/2 或Sn=a1*n+n(n-1)d/2这是公式
}*/
Sum+=j*(1+j)/2;
}
return sum;
}
static void main()
{
int s = _sum(10);
}
在提交表单里控制
(1)<input type="text" name="myn" maxlength="2">
或者(2)<input type="text" name="myn" id="myID" onblur="return jsfun();" />
<script type="text/javascript">
function jsfun()
{
if(document.getElementById("myID").value>20)//设定不超过20,由你自己定了
{
alert("请输入不大于20的数字");
document.getElementById("myID").value="";
}
}
</script>
这回可以了哇 --------------------编程问答-------------------- (1)<input type="text" name="myn" maxlength="2">
限制为两位数,即最大99
补充:.NET技术 , C#