|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- #include<math.h>
- int main()
- {
- int a,i;scanf("%d",&a);
- if(a%2) printf("-1");
- else if(a%2==0)
- {
- for(i=19;a=0;i--)
- {
- if(a>pow(2,i))
- {
- printf("%lf",pow(2,i));a-=pow(2,i);
- }
- }
- }
- return 0;
- }
复制代码
程序为什么输出不了,哪里错了????
本帖最后由 jackz007 于 2022-10-27 16:04 编辑
这是修改的
- #include<stdio.h>
- #include<math.h>
- int main()
- {
- int a , i ;
- scanf("%d" , & a) ;
- if(a % 2) printf("-1") ;
- else
- {
- for(; a > 1 ;)
- {
- for(i = 1 ; a > 1 && pow(2 , i) <= a ; i ++) ;
- printf("%3.0f" , pow(2 , i - 1)) ;
- a -= pow(2 , i - 1) ;
- }
- }
- }
复制代码
这是我写的
- #include<stdio.h>
- int main()
- {
- int a , b ;
- scanf("%d" , & a) ;
- if(! (a % 2)) {
- for(; a > 1 ;) {
- for(b = 1 ; b <= a ; b *= 2) ;
- printf("%3d" , b / 2) ;
- a -= b / 2 ;
- }
- printf("\n") ;
- } else {
- printf("-1\n") ;
- }
- }
复制代码
编译、运行实况:
- D:\[00.Exerciese.2022]\C>g++ -o x x.c
- D:\[00.Exerciese.2022]\C>x
- 14
- 8 4 2
- D:\[00.Exerciese.2022]\C>
复制代码
|
|