以递增顺序打印2^i*5^j

本文介绍了一种使用C++实现的算法,该算法能够按递增顺序打印形如2^i * 5^j (i>=0, j>=0) 的整数序列。通过维护两个指针分别跟踪当前序列中每个数的2倍和5倍,算法有效地生成了所需序列,例如:1, 2, 4, 5, 8, 10, 16, 20...。此算法特别适用于处理数学序列和动态规划问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以递增的顺序打印2^i*5^j这N个数组 所有的 i >= 0 , j >= 0

Print N numbers of form 2^i.5^j in increasing order for all i >= 0 , j >= 0 ?

Example : - 1,2,4,5,8,10,16,20.....


#include <stdio.h>
#include <stdlib.h>
void print(int N)
{
	int *arr = new int[N];
	arr[0] = 1;
	int numi,numj,num;
	int i = 0,j = 0,k = 0,count = 1;
	while(count<N)//第一个元素为arr[0] = 1 求出剩余的N-1个数
	{
		numi = arr[i]*2;//用numi记录2的倍数
		numj = arr[j]*5;//用numj记录5的倍数
		if (numi<numj)//记录较小的倍数
		{
			num = numi;
			i++;
		}
		else
		{
			num = numj;
			j++;		
		}
		if (num > arr[k])//如果较小的倍数大于最大的值 填充数组中下一个元素
		{
			arr[++k] = num;
			count++;
		}
	}
	for(int counter = 0; counter < N; counter++)
	{
		printf("%d ", arr[counter]);
	}
	delete [] arr ;
}
void main()
{
	print(9);
	getchar();
}


研究以下代码“clc;close all;clear; %% 性能极限参数 sigma = 0.2; J = []; h1 = 0.2; p1_a = []; s1_a = []; tau = 0.1; gamma = 0.8; zeta = 0.1; Theta = 0.9; Ts = 0.1; %% 汽车二自由度模型参数 M = 1400; %整车质量kg k_1 = -80000; %前轮侧偏刚度N/rad k_2 = -18500; %后轮侧偏刚度N/rad a = 2; %质心到前轴距离m b = 1; %质心到后轴距离m L = a + b; Iz = 2100; %绕z轴的转动惯量kg*m^2 u = 15; %质心沿 x 轴速度分量m/s i = 1; j = 1; c_m_a = [0.3:0.02:0.7]; u_a = [13:0.5:20]; k_1_a = [-25000:-100:-75000]; a_a = [0.5:0.1:2]; tau_a = [0.2,0.4,0.6]; x_a = a_a; for tau = tau_a for a = a_a L = a+b; a11 = (k_1 + k_2)/(M*u); a12 = ((a*k_1 - b*k_2)/(M*u)) - u; a21 = (a*k_1 - b*k_2)/(Iz*u); a22 = (a^2*k_1 + b^2*k_2)/(Iz*u); b1 = -k_1/M; b2 = -a*k_1/Iz; s1 = -((a12*b2 - a22*b1)*Ts-b1)/b1; %s1 = 1; p1 = (2+(a11 + a22)*Ts - sqrt( (2+(a11 + a22)*Ts)^2 - 4*(1+ (a11+a22)*Ts + (a11*a22-a12*a21)*Ts^2) ))/2; %p1 = 2 p2 = (2+(a11 + a22)*Ts + sqrt( (2+(a11 + a22)*Ts)^2 - 4*(1+ (a11+a22)*Ts + (a11*a22-a12*a21)*Ts^2) ))/2; Jg_11 = (s1^2-1)^2/((1-s1)^2*(s1^2-gamma^2)); Jg_12 = (((p2^2-1)^2)/((1-p2)^2*(gamma^2*p2^2-1))) * (p2^(tau) - (1/((1-zeta)*(1+Theta)))*gamma^(2*tau)*p2^(tau)*((1-s1*p2)/(p2-s1)) )^2; Jg_2 = (1/((1-zeta)*(1+Theta))^2) *gamma^2*((1-s1^2)^2/(gamma^2*s1^2-1))*(b1*sigma*s1^(tau)*((s1^2-1)/((s1-p1)*(s1-p2))) )^2; J(i,j) = Jg_11+Jg_2; p2_a(i,j) = p2; p1_a(i,j) = p1; s1_a(i,j) = s1; i = i+1; end j = j+1; i = 1; end %plot(x_a,J(:,1),&#39;r:&#39;,x_a,J(:,2),&#39;b--&#39;,x_a,J(:,3),&#39;g:.&#39;) h1 = plot(x_a,J(:,1),&#39;Color&#39;,[1,0,0],&#39;LineStyle&#39;,&#39;--&#39;,&#39;Marker&#39;,&#39;*&#39;) hold on h2 = plot(x_a,J(:,2),&#39;Color&#39;,[0,0,1],&#39;LineStyle&#39;,&#39;--&#39;,&#39;Marker&#39;,&#39;^&#39;) hold on h3 = plot(x_a,J(:,3),&#39;Color&#39;,[0.1,0.2,0.5],&#39;LineStyle&#39;,&#39;--&#39;,&#39;Marker&#39;,&#39;h&#39;) legend([h1,h2,h3],&#39;\tau = 0.2&#39;,&#39;\tau = 0.4&#39;,&#39;\tau = 0.6&#39;) % figure % plot(x_a,p1_a(:,1),&#39;r-^&#39;,x_a,s1_a(:,1),&#39;g-o&#39;,x_a,p1_a(:,2),&#39;r-^&#39;,x_a,s1_a(:,2),&#39;g-o&#39;,x_a,p1_a(:,3),&#39;r-^&#39;,x_a,s1_a(:,3),&#39;g-o&#39;) % yline(0,&#39;-.b&#39;); J_1 = J(:,1); [~, J_mpos] = min(J_1); text(x_a(J_mpos),J_1(J_mpos),&#39;x&#39;,&#39;color&#39;,&#39;k&#39;) text(x_a(J_mpos), J_1(J_mpos)-40, [&#39;(&#39;,num2str(x_a(J_mpos)),&#39;, &#39;,num2str(J_1(J_mpos)),&#39;)&#39;],&#39;Color&#39;,[0,0,0]); J_2 = J(:,2); [~, J_mpos] = min(J_2); text(x_a(J_mpos),J_2(J_mpos),&#39;x&#39;,&#39;color&#39;,&#39;k&#39;) text(x_a(J_mpos), J_2(J_mpos)-40, [&#39;(&#39;,num2str(x_a(J_mpos)),&#39;, &#39;,num2str(J_2(J_mpos)),&#39;)&#39;],&#39;Color&#39;,[0,0,0]); J_3 = J(:,3); [~, J_mpos] = min(J_3); text(x_a(J_mpos),J_3(J_mpos),&#39;x&#39;,&#39;color&#39;,&#39;k&#39;) text(x_a(J_mpos), J_3(J_mpos)-40, [&#39;( &#39;,num2str(x_a(J_mpos)),&#39;, &#39;,num2str(J_3(J_mpos)),&#39;)&#39;],&#39;Color&#39;,[0,0,0]); xlabel(&#39;前轴到质心的距离{\fontname{Times New Roman}\itl_f}&#39;); ylabel(&#39;修正性能极限[J_{\gamma}^{*}]&#39;) figure plot(x_a,p2_a,&#39;r-^&#39;,x_a,p1_a,&#39;b-^&#39;,x_a,s1_a,&#39;g-o&#39;) yline(0,&#39;-.b&#39;); yline(1,&#39;-.b&#39;); yline(-1,&#39;-.b&#39;);”当其中的以下参数变化时“p1 = (8-(a11*a22-a12*a21)*2*Ts^2 - sqrt( (8-(a11*a22-a12*a21)*2*Ts^2)^2 - 4*((4-2*Ts*(a11 + a22)+(a11*a22-a12*a21)*Ts^2)*(4+2*Ts*(a11 + a22)+(a11*a22-a12*a21)*Ts^2)) ))/2*(4-2*Ts*(a11 + a22)+(a11*a22-a12*a21)*Ts^2); p2 = (8-(a11*a22-a12*a21)*2*Ts^2 + sqrt( (8-(a11*a22-a12*a21)*2*Ts^2)^2 - 4*((4-2*Ts*(a11 + a22)+(a11*a22-a12*a21)*Ts^2)*(4+2*Ts*(a11 + a22)+(a11*a22-a12*a21)*Ts^2)) ))/2*(4-2*Ts*(a11 + a22)+(a11*a22-a12*a21)*Ts^2); s1 = ((2*Ts^2*(a11*b2-a21*b1)) + sqrt(4+4*(2*b2*Ts+(a21*b1-a11*b2)*Ts^2)*((a21*b1-a11*b2)*Ts^2-2*b2*Ts)) )/(2*(2*b2*Ts+(a21*b1-a11*b2)*Ts^2)); ”现需要将变化后的代码也能实现在参数tau变化时得到仿真图的最小值
03-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值