网易笔试的一道题

写一个程序,打印出以下的序列。
(a),(b),(c),(d),(e)........(z)
(a,b),(a,c),(a,d),(a,e)......(a,z),(b,c),(b,d).....(b,z),(c,d).....(y,z)
(a,b,c),(a,b,d)....(a,b,z),(a,c,d)....(x,y,z)
....

(a,b,c,d,.....x,y,z)



	const char arr[]="a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
	char tmp[sizeof(arr)];
	for(int i = 0; i < 26; i++)
	{
		memset(tmp,0,sizeof(arr));
		strncpy(tmp,arr,i*2+1);
		for(;;)
		{
			for(;tmp[i*2]<'z';)
			{
				printf("(%s),",tmp);
				tmp[i*2]++;
			}
			printf("(%s)",tmp); // 最后一个,不需要逗号 
			//printf("\n");

			if(0 == strncmp(tmp,arr+25*2-i*2,i*2+1))
				break;

			int j = 0;
			for(;j <= i;j++)
			{
				if(tmp[j*2] == arr[25*2-i*2+j*2])
					break;
			}
			tmp[(j-1)*2]++;
			for(;j<=i;j++)
			{
				tmp[j*2] = tmp[(j-1)*2]+1;
			}
		}
		printf("\n");
	}

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值