标题:这怎么做啊,请大神们给我参考下
只看楼主
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
得分:0 
回复 10楼 w4654646
是C语言,只是写了主要的代码部分,你要自己完善。pow(x,y)这个地方不懂吗?这个是数学函数,在math.h中,就是计算x的y次方
2016-06-21 16:47
w4654646
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2016-3-2
得分:0 
回复 11楼 wanglianyi1
pow(x,y)的使用是下面这样吗
int pow(intx,inty)
{
    int a;
    a==x^y;
    return a;
}
2016-06-21 17:00
w4654646
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2016-3-2
得分:0 
回复 12楼 w4654646
#include <stdio.h>
#include <math.h>
int pow(int x,int y)
{
    int a;
    a=x^y;
    return a;
}
int main()
{
    int loop,count,i,j;
    scanf("%d", &loop);
    count = 0;
    j = loop;
    for(i = 0; j > 0; i++)
    {
        j = j / 2;
        count++;
    }
    printf("%d\n", (int)(2 * (loop - (pow(2, count - 1))) + 1));
    return 0;
}
这个哪里错了?
2016-06-21 17:03
w4654646
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2016-3-2
得分:0 
没有人了吗?
2016-06-21 17:30
w4654646
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2016-3-2
得分:0 
以下是引用rjsp在2016-6-21 16:26:00的发言:

已经说了,这还需要优化
算法:将n的二进制形式去掉最高位,然后乘以二加1。就行了
例如 7,二进制是 111,去掉最高位就是 11,也就是十进制的3,然后乘以2加1结果就是 3*2+1=7
太简单了,代码自己写
这我不会,请大家告诉我怎么写
2016-06-21 17:32
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
得分:0 
pow这个函数是库函数,直接调用就行,不用实现。
2016-06-21 17:34
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
得分:0 
还有题目要输入多组数据,这个输入方法没写明白,你得自己考虑。
2016-06-21 17:35
w4654646
Rank: 1
等 级:新手上路
帖 子:80
专家分:0
注 册:2016-3-2
得分:0 
回复 17楼 grmmylbs
多谢
2016-06-21 17:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-466207-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.316953 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved