我试图将未知数量的数据存储到数组中,同时使用forloop获取数据!我的任务是找到并汇总1到1000之间的所有数字,可以分为3和5。
for (int i = 1; i < 1001; i++)
if (i%3==0)
{
if (i%5==0)
{
//this doesn't work, have tried to convert it to string, didn't work either
int[] array = { i };
//trying to loop the values
for (int j = 0; j < array.Length; i++)
{
//how can I loop this so I dont have to write it all out?
int sum1 = array[j]
}
}
}
Console.ReadKey();
答案 0 :(得分:2)
仅仅因为计算机可以很好地执行重复性任务并不意味着你忽略了数学。如果我做对了,你试图找到所有小于1000的数字的总和,它们可以被3和5整除。所以这可以归结为15的所有倍数。现在如果你采取1000/15的最低点,你得到最后一个,在这种情况下是66.所以,你必须总结系列:
15, 15*2, 15*3,...15*66
=15*(1+2+3+..+66) [15*sum of first 66 positive natural numbers]
=15*66*67/2
如此概括,找出所有小于 a 且可被 b 整除的数字的总和,由下式给出:
limit = floor(a/b);
sum = b*limit*(limit+1)/2;
答案 1 :(得分:0)
这样的事情:
var ListOfInts=new List<int>();
for (int i = 1; i < 1001; i++) {
if (i % 3 == 0 && i % 5 == 0)
ListOfInts.Add(i);
}
var result = ListOfInts.Sum();
答案 2 :(得分:0)
也许这段代码可以满足您的需求:
struct setB{
double x,y,z;
}
struct setC{
double u,t,v;
}
union{
setB set1;
setC set2;
} common_field;
答案 3 :(得分:0)
数字除以3和5表示它除以15.因此,您可以从15开始迭代并递增15以跳过一些迭代:
$ git svn clone -r 34000:HEAD -s https://...
答案 4 :(得分:0)
谢谢你们!很多好的答案,我仍然试图了解其中的一些,但谢谢:)
怎么回事
List<int> li = new List<int>();
for (int i = 1; i <= 1000; i++)
{
if (i%3 == 0 && i%5 == 0)
{
li.Add(i);
}
}
Console.Write("sum is " + li.Sum());
Console.ReadLine();
给我this 而代码在
下var ListofInts = new List<int>();
for (int i = 0; i < 1001; i++)
{
if (i%3==0 && i%5==0)
{
ListofInts.Add(i);
var result = ListofInts.Sum();
Console.Write(result + ", ");
}
}
给了我this?