C 这一排数字中是否有特定的顺序?
我需要创建一个包含14个元素的列表,每个元素的输入整数必须是1,2,5,10,20,50100,然后反转。写int a=1,b=2,…,是愚蠢的。。。。 那么有没有一种方法可以循环这个过程? 例如,如果我要创建一个For循环,如何在所需的值和“I”之间建立连接?(int x=0;x<14;x++){ int y=1*(x-1)/-1*(x-2)/-2*(x-3)/-3*(x-4)/-4*(x-5)/-5*(x-6)/-6*(x-7)/-7*(x-8)/-8*(x-9)/-9*(x-10*(x-11)/-11*(x-12)/-12*(x-13)/-13 +2*(x-0)/1*(x-2)/-1*(x-3)/-2*(x-4)/-3*(x-5)/-4*(x-6)/-5*(x-7)/-6*(x-8)/-7*(x-9)/-8*(x-10)/-9*(x-11)/-10*(x-12)/-11*(x-13)/-12 +5*(x-0)/2*(x-1)/1*(x-3)/-1*(x-4)/-2*(x-5)/-3*(x-6)/-4*(x-7)/-5*(x-8)/-6*(x-9)/-7*(x-10)/-8*(x-11)/-9*(x-12)/-10*(x-13)/-11 +10*(x-0)/3*(x-1)/2*(x-2)/1*(x-4)/-1*(x-5)/-2*(x-6)/-3*(x-7)/-4*(x-8)/-5*(x-9)/-6*(x-10)/-7*(x-11)/-8*(x-12)/-9*(x-13)/-10 +20*(x-0)/4*(x-1)/3*(x-2)/2*(x-3)/1*(x-5)/-1*(x-6)/-2*(x-7)/-3*(x-8)/-4*(x-9)/-5*(x-10)/-6*(x-11)/-7*(x-12)/-8*(x-13)/-9 +50*(x-0)/5*(x-1)/4*(x-2)/3*(x-3)/2*(x-4)/1*(x-6)/-1*(x-7)/-2*(x-8)/-3*(x-9)/-4*(x-10)/-5*(x-11)/-6*(x-12)/-7*(x-13)/-8 +100*(x-0)/6*(x-1)/5*(x-2)/4*(x-3)/3*(x-4)/2*(x-5)/1*(x-7)/-1*(x-8)/-2*(x-9)/-3*(x-10)/-4*(x-11)/-5*(x-12)/-6*(x-13)/-7 +100*(x-0)/7*(x-1)/6*(x-2)/5*(x-3)/4*(x-4)/3*(x-5)/2*(x-6)/1*(x-8)/-1*(x-9)/-2*(x-10)/-3*(x-11)/-4*(x-12)/-5*(x-13)/-6 +50*(x-0)/8*(x-1)/7*(x-2)/6*(x-3)/5*(x-4)/4*(x-5)/3*(x-6)/2*(x-7)/1*(x-9)/-1*(x-10)/-2*(x-11)/-3*(x-12)/-4*(x-13)/-5 +20*(x-0)/9*(x-1)/8*(x-2)/7*(x-3)/6*(x-4)/5*(x-5)/4*(x-6)/3*(x-7)/2*(x-8)/1*(x-10)/-1*(x-11)/-2*(x-12)/-3*(x-13)/-4 +10*(x-0)/10*(x-1)/9*(x-2)/8*(x-3)/7*(x-4)/6*(x-5)/5*(x-6)/4*(x-7)/3*(x-8)/2*(x-9)/1*(x-11)/-1*(x-12)/-2*(x-13)/-3 +5*(x-0)/11*(x-1)/10*(x-2)/9*(x-3)/8*(x-4)/7*(x-5)/6*(x-6)/5*(x-7)/4*(x-8)/3*(x-9)/2*(x-10)/1*(x-12)/1*(x-13)/2 +2*(x-0)/12*(x-1)/11*(x-2)/10*(x-3)/9*(x-4)/8*(x-5)/7*(x-6)/6*(x-7)/5*(x-8)/4*(x-9)/3*(x-10)/2*(x-11)/1*(x-13)/1 +1*(x-0)/13*(x-1)/12*(x-2)/11*(x-3)/10*(x-4)/9*(x-5)/8*(x-6)/7*(x-7)/6*(x-8)/5*(x-9)/4*(x-10)/3*(x-11)/2*(x-12)/1; } 简短说明:在每一行中,当x是0到13中的一个时,大多数乘法将产生C 这一排数字中是否有特定的顺序?,c,loops,sequence,C,Loops,Sequence,我需要创建一个包含14个元素的列表,每个元素的输入整数必须是1,2,5,10,20,50100,然后反转。写int a=1,b=2,…,是愚蠢的。。。。 那么有没有一种方法可以循环这个过程? 例如,如果我要创建一个For循环,如何在所需的值和“I”之间建立连接?(int x=0;x(其中7是序列的元素数)@500 InternalServerError:Brilliant Vlad! #include <stdio.h> int main(void) { const in
0
,即不需要除以以更正值的乘法
但是数组查找选项在。。。哦有很多种方式:)
请参见您可以在循环中使用以下内容
#include <stdio.h>
int main(void)
{
const int N = 10;
int multiplier = 1;
for ( int i = 0; i < N; i++ )
{
int value;
switch ( i % 3 )
{
case 0:
value = 1 * multiplier;
break;
case 1:
value = 2 * multiplier;
break;
case 2:
value = 5 * multiplier;
break;
}
printf ( "%d ", value );
if ( ( i + 1 ) % 3 == 0 ) multiplier *= 10;
}
putchar( '\n' );
return 0;
}
使用数组
int数组[14]={1,2,5,10,20,50100100,50,20,10,5,2,1}
然后,您可以使用for
循环访问每个元素。要添加@WeatherVane编写的内容,您可以使查找数组静态
和常量
。如果你真的对空间很吝啬,你甚至可以把它做成一个char
数组(尽管使用char
可能会增加代码的大小,而不是使用更窄的类型所节省的大小)。检查一下,如果你能把这个python脚本翻译成C,你就得到了:print([(n%3)**2+1)*10**int(n/3)对于范围(7)中的n)
-->(其中7是序列的元素数)@500 InternalServerError:Brilliant Vlad!
#include <stdio.h>
int main(void)
{
const int N = 10;
int multiplier = 1;
for ( int i = 0; i < N; i++ )
{
int value;
switch ( i % 3 )
{
case 0:
value = 1 * multiplier;
break;
case 1:
value = 2 * multiplier;
break;
case 2:
value = 5 * multiplier;
break;
}
printf ( "%d ", value );
if ( ( i + 1 ) % 3 == 0 ) multiplier *= 10;
}
putchar( '\n' );
return 0;
}
1 2 5 10 20 50 100 200 500 1000