计算5+55+555+5555+55555+555555+5555555、、、、、的前10项和,
public class Example
{public static void main(string args[])
{long sum=0,a=5,item=1,n=10,i=1;能不能给讲一下这几个定义的都是什么意思呀,
for (i=1;i<=n;i++)
{sum=sum+item; 这句又是什么意思?
item=item*10+a; 这一句呢?谢谢
}
system.out.println(sum);
}
}
public class Example
{public static void main(string args[])
{long sum=0,a=5,item=1,n=10,i=1;能不能给讲一下这几个定义的都是什么意思呀,
for (i=1;i<=n;i++)
{sum=sum+item; 这句又是什么意思?
item=item*10+a; 这一句呢?谢谢
}
system.out.println(sum);
}
}
public class Example
{public static void main(string args[])
{long sum=0,a=5,item=0,n=10,i=1;
for (i=1;i <=n;i++)
{
item=item*10+a;
sum=sum+item;
}
system.out.println(sum);
}
}
sum为最后的总和,a那个余数,ITEM,每个项目的值,N循环的次数
比如 第1项是5 ,第2项是55
{public static void main(string args[])
{
for (i=1;i <=n;i++)
{
这句又是什么意思?
}
system.out.println(sum);
}
}
long sum=0,a=5,item=1,n=10,i=1; sum为求的总和,a作为一个系数(相加项的关系系数)使用,item为第几个加数,n为有多少个数相加,i为循环开始数
item=item*10+a; 为了计算出第n个加数的值,即第一个数为1*10+5=5,第二个数是5*10+5=55,依次类推
sum=sum+item;计算出总和,第一次为0+5=5;第二次为5+55=60;第三次为60+555=615,依次类推
是不是算法应该改成这样?
public class csdntest
{
public static void main(String args[])
{
long sum=0,item=0,n=10;
int i = 1,count = 1;
while(count <= n)
{
if(count > 1){
i*=10;
}
sum += nextItem(count,i);
count++;
}
System.out.println(sum);
} static long nextItem(int m, int n){
long a = 5,item = 0;
if(m > 1)
item = a*n + nextItem(m-1,n/10);
else
item = a*n;
return item;
}
}
挺简单的,主要是理解5,和55的区别。->1*5 and 11*5,其中的1如何自动变化呢?想通了就好理解了。
item=item*10+a; 为了计算出第n个加数的值,即第一个数为1*10+5=5,第二个数是5*10+5=55,依次类推
sum=sum+item;计算出总和,第一次为0+5=5;第二次为5+55=60;第三次为60+555=615,依次类推
还是不明白呀,1*10+5不是等于15吗,