正弦


私信TA

用户名:qq15582632151

访问量:32276

签 名:

等  级
排  名 145
经  验 7352
参赛次数 0
文章发表 57
年  龄 0
在职情况 学生
学  校 小学生
专  业

  自我简介:

解题思路:

注意事项:

参考代码:
#include<stdio.h>
#include<math.h>
int main()
{
	unsigned int a, m, sum = 0;
	int num[32] = { 0 }, num1[32] = { 0 }, i = 0, j=0;
	scanf("%u %u", &a, &m);
	while (a)
	{
		num1[i] = a % 2;
		a = a / 2;                       //将输入的值进行二进制转化,逆序存储在数组中
		i++;
	}
	for (i = 0; i < 32; i++)
	{
		j = i - m;
		while (j < 0)
		{                                //题目说将二进制向右循环移位,逆序存储后向左移位
			j += 32;             //将当前下标减去所移位数,如果结果小于0,则将结果加32
		}
		num[j] = num1[i];
	}
	
	for (i = 0; i < 32; i++)
	{
		sum = sum + pow(2.0, i)*num[i];        //打印结果  (注意:解析中所有数组全为逆序存储)
	}
	printf("%u", sum);
	return 0;

}


 

0.0分

3 人评分

  评论区

欢迎大神指教~ 不要吝啬小心心哟
2018-07-31 10:03:52
  • «
  • 1
  • »