E81086713E446D36F62B2AA2A3502B5EB155

Java杂家

杂七杂八。。。一家之言

BlogJava 首页 新随笔 联系 聚合 管理
  141 Posts :: 1 Stories :: 174 Comments :: 0 Trackbacks
写一个函数,输出前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);
}


posted on 2008-12-10 21:44 DoubleH 阅读(3218) 评论(8)  编辑  收藏

Feedback

# re: 【分享】今日某公司的电话面试题 2008-12-11 11:16 ANTICPC
绝望  回复  更多评论
  

# re: 【分享】今日某公司的电话面试题 2008-12-11 13:50 Always BaNg.
强,电话写代码啊?  回复  更多评论
  

# re: 【分享】今日某公司的电话面试题 2008-12-12 09:11 congdepeng@hotmail.com
弱弱的问 不是java写的吧? 过程话语言写这个问题还是很简单的   回复  更多评论
  

# re: 【分享】今日某公司的电话面试题 2008-12-12 11:22 bad
i am sure you are poor in java,so you are a newer.  回复  更多评论
  

# re: 【分享】今日某公司的电话面试题[未登录] 2008-12-12 13:30 bill
在java 5中也可以用printf()的 ,可能是他写C多点哦  回复  更多评论
  

# re: 【分享】今日某公司的电话面试题 2008-12-16 22:52 小Xiong
牛! JAVA里面好像不是叫函数吧,应该是叫方法吧!还发现会有printf()。老兄是不是帖子放错位置了啦!  回复  更多评论
  

# re: 【分享】今日某公司的电话面试题 2009-01-08 18:47 无韵之殇
LZ,有错误吧……
输入printeN(100)输出:
7 14 16 17 21 25 27 28 34 35 37 42 43 47 49 52 56 57 59 61 63 67 68 70 77 84 86 87 91 95 97 98 105 106 107 112 115 117 119 124 126 127 133 137 140 142 147 149 151 154 157 158 160 161 167 168 170 171 172 173 174 175 176 177 178 179 182 185 187 189 194 196 197 203 205 207 210 214 217 223 224 227 231 232 237 238 239 241 245 247 248 250 252 257 259 266 267 270 271 272
(把代码改成JAVA后的运行的:)
void printN(int n) {

int c = 0;
int i = 7;
do {
if (i % 7 == 0) {
System.out.print(i + " ");
c++;
} else {
int j = i % 10;
int k = j;
int s = k;
int p = 10;
while (k < i) {

if (j == 7) {
System.out.print(i + " ");
s = 0;
c++;
break;

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

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

System.out.print(i + " ");
c++;
}

}
i++;
} while (c < n);
}   回复  更多评论
  

# re: 【分享】今日某公司的电话面试题 2009-01-09 09:09 无韵之殇
看来是我理解错了,应该是输出N个,不好意思……  回复  更多评论
  

# # re: 【分享】今日某公司的电话面试题 2009-01-09 10:01 # re: 【分享】今日某公司的电话面试题
71 72 73……呢?  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: