| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 291 人关注过本帖
标题:假若输入342315 只能输出5,没办法输出13
取消只看楼主 加入收藏
NeQhk
Rank: 2
等 级:论坛游民
威 望:1
帖 子:164
专家分:85
注 册:2014-7-19
结帖率:69.23%
收藏
 问题点数:0 回复次数:1 
假若输入342315 只能输出5,没办法输出13
#include<stdio.h>
#include<math.h>
int f(int n)
{
    int k = 1;(表示从左往右第几位,同时作为2的指数)
    int s = 0;
    for (; n != 0;){
        if (n % 10 % 2 == 1 && k % 2 != 0)  s += pow(2, k - 1);
        if (n % 10 % 2 == 0 && k % 2 != 0)
        if (n % 10 % 2 == 1 && k % 2 == 0)
        if (n % 10 % 2 == 0)
        if (k % 2 == 0)
            s += pow(2, k - 1);
        n = n / 10;
        k++;
    }
    printf("%d", s);
    return 0;

}

int main()
{
    int n;
    scanf("%d", &n);
    f(n);
    return 0;
}

定义的函数是要在
(从右往左数)第几位上若为同奇偶性,那个位上就用1代替
否则用0代替,
然后输出十进制的数,
不过假若输入342315,只能输出5,
怎么修改好?
搜索更多相关主题的帖子: return include 
2014-12-17 18:37
NeQhk
Rank: 2
等 级:论坛游民
威 望:1
帖 子:164
专家分:85
注 册:2014-7-19
收藏
得分:0 
回复 2楼 诸葛欧阳
题目是这样的,输入一个数,假设从右往左为第1位,第二位,依次类推,
第一位是奇数位,若其位上数字为奇数,也就是同奇偶,那么让第一位等于1
以后每位同奇偶等于1,不同奇偶等于0
然后会有一串只有1,0的数字,把他看成二进制数转换成十进制。
k我用来表示从右往左第几位,顺便也表示了2的指数,用来将二进制转化为十进制的

[ 本帖最后由 NeQhk 于 2014-12-17 19:17 编辑 ]
2014-12-17 19:15
快速回复:假若输入342315 只能输出5,没办法输出13
数据加载中...
 
   



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

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