【分享】今日某公司的电话面试题

【分享】今日某公司的电话面试题
写一个函数,输出前N个数(从7开始),这N个数满足如下3个条件中的任意一个
1.整出7
2.各位上的数字之和整除7,(比如34)
3.任意位上包含数字7


附我的代码:
void  printN( int  n)
{

    
    
int  c = 0 ;
    
int  i = 7 ;
    
do  
    {
        
if (i % 7   == 0 )
        {
            printf(
" %d\n " ,i);
            c
++ ;
        }
        
else
        {
            
int  j = i % 10 ;
            
int  k = j;
            
int  s = k;
            
int  p = 10 ;
            
while (k<i)
            {

                
if (j == 7 )
                {
                    printf(
" %d\n " ,i);
                    s
= 0 ;
                    c
++ ;
                    
break ;

                }
                
else
                {
                    j
= ((i - k) / p) % 10 ;
                    s
+= j;
                    k
= j * p + k;
                    p
*= 10 ;


                }
            }
            
if (s && s % 7 == 0 )
            {


                printf(
" %d\n " ,i);
                c
++ ;
            }
            

        }
        i
++ ;
    } 
while  (c < n);
}


你可能感兴趣的:(【分享】今日某公司的电话面试题)