数字特征值-week3-C语言习题集
2016-07-22 16:21
323 查看
数字特征值(5分)
题目内容:
对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。
这里的计算可以用下面的表格来表示:
你的程序要读入一个非负整数,整数的范围是[0,1000000],然后按照上述算法计算出表示奇偶性的那个二进制数字,输出它对应的十进制值。
提示:将整数从右向左分解,数位每次加1,而二进制值每次乘2。
输入格式:
一个非负整数,整数的范围是[0,1000000]。
输出格式:
一个整数,表示计算结果。
输入样例:
342315
输出样例:
13
时间限制:500ms内存限制:32000kb
题目内容:
对数字求特征值是常用的编码算法,奇偶特征是一种简单的特征值。对于一个整数,从个位开始对每一位数字编号,个位是1号,十位是2号,以此类推。这个整数在第n位上的数字记作x,如果x和n的奇偶性相同,则记下一个1,否则记下一个0。按照整数的顺序把对应位的表示奇偶性的0和1都记录下来,就形成了一个二进制数字。比如,对于342315,这个二进制数字就是001101。
这里的计算可以用下面的表格来表示:
你的程序要读入一个非负整数,整数的范围是[0,1000000],然后按照上述算法计算出表示奇偶性的那个二进制数字,输出它对应的十进制值。
提示:将整数从右向左分解,数位每次加1,而二进制值每次乘2。
输入格式:
一个非负整数,整数的范围是[0,1000000]。
输出格式:
一个整数,表示计算结果。
输入样例:
342315
输出样例:
13
时间限制:500ms内存限制:32000kb
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { int input,count=0; int sum = 0; int temp =0; printf("请输入一个非负整数0~1000000:"); scanf("%d",&input); while(input>0){ temp = input % 10; count++; if (temp%2 == count%2){ sum += pow(2,count-1); } input /= 10; } printf("数字特征值为:%d",sum); return 0; }
相关文章推荐
- 1088. Rational Arithmetic (20)
- 奇偶个数-week3-C语言习题集
- C语言读取文件中文本模式和二进制模式的区别
- 括号匹配
- C语言回调(函数指针)
- HDU 5573 Binary Tree (二进制,位运算)
- Protocol Buffer C++实践
- C++类的存储及类对象内存结构(整理)
- 【栈】C++栈的建立、初始化、插入、删除
- C++ stringstream的用法
- C++拷贝构造函数
- c++学习笔记(十二):构造函数和析构函数
- 大数减法 C语言
- 实验案例2-3:整数分解为若干项之和
- Download file using libcurl in C/C++
- 实验项目2-7:素因子分解
- C/C++中数组名退化为指针的情况
- C++文件的读写
- c++: new, delete, malloc, free的匹配使用
- 括号配对问题