| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:请问大牛:这道题输入21应该输出什么?In Reply To:请问大牛:这道题输入21应该输出什么? Posted by:xuezaiyue at 2005-05-30 22:04:00 > 我觉得应该输出3
> 21=21
> 21=10+11
> 21=6+7+8
> 答案21=0+1+2+3+4+5+6应该是不对的。
>
>
> 下面有两段代码,
> 第一段代码是我同学做的,我用mj试过,这段程序是能够AC的,但是输入21,输出是4
> 第二段是我的程序,对于数据21,输出是3,我觉得没错,但是wa了,请教大牛,怎么回事?
>
> /*********代码1**************/
> #include <stdio.h>
> int main()
> {
> int n,i,ways;
> while(scanf("%d",&n)!=EOF)
> {
> ways = 0;
> if(n%2 != 0)ways++;
> for(i = 1;i < n;i = i + 2)
> {
> if(n%i == 0)
> ways++;
> }
> printf("%d\n",ways);
> }
> return 0;
> }
>
>
>
>
> /************代码2************/
> #include <stdio.h>
> main()
> {
> long n;
> long i;
> long num;
>
>
> while(scanf("%ld",&n)!=EOF)
> {
> num=0;
> for(i=0;i*(2*i+1)<=n;i++)
> if(n%(2*i+1)==0 && n/(2*i+1)>i)
> num++;
> i=1;
> while((n/i)%2==0)
> {
> i=i*2;
> }
>
> if(n/i>2*i)
> num++;
>
>
> printf("%ld\n",num);
> }
> }
>
>
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator