网易面试题

 写一个程序,打印出以下的序列。
(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)

 

 

  1. 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";  
  2. char tmp[sizeof(arr)];  
  3. for(int i = 0; i < 26; i++)  
  4. {  
  5.     memset(tmp,0,sizeof(arr));  
  6.     strncpy(tmp,arr,i*2+1);  
  7.     for(;;)  
  8.     {  
  9.         for(;tmp[i*2]<'z';)  
  10.         {  
  11.             printf("(%s),",tmp);  
  12.             tmp[i*2]++;  
  13.         }  
  14.         printf("(%s)",tmp); // 最后一个,不需要逗号    
  15.         //printf("\n");   
  16.   
  17.         if(0 == strncmp(tmp,arr+25*2-i*2,i*2+1))  
  18.             break;  
  19.   
  20.         int j = 0;  
  21.         for(;j <= i;j++)  
  22.         {  
  23.             if(tmp[j*2] == arr[25*2-i*2+j*2])  
  24.                 break;  
  25.         }  
  26.         tmp[(j-1)*2]++;  
  27.         for(;j<=i;j++)  
  28.         {  
  29.             tmp[j*2] = tmp[(j-1)*2]+1;  
  30.         }  
  31.     }  
  32.     printf("\n");  
  33. }  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值