尾数前移

尾数前移/*尾数前移: 求一个自然数N,个位数是6,将6提到最前面所得数是N的四倍 如:1236-6123?=4*1236-如果是,则找到!解题思路: 将自然数分成两部分p=123(即6前面的数值)、q=6 移位之后的数值:6*pow(10,p的位数)+p 即:6*pow(10,p的位数)+p=4*N q=N%10; p=N/10;

/*
尾数前移:

	求一个自然数N,个位数是6,将6提到最前面所得数是N的四倍
	如:1236----->6123 ?= 4*1236----->如果是,则找到!

解题思路:

	将自然数分成两部分p=123(即6前面的数值)、q=6
	移位之后的数值:6*pow(10,p的位数) + p 
	即:6*pow(10,p的位数) + p = 4*N
	q = N%10;
	p = N/10;
	p的位数()

*/
#include<stdio.h>
#define LENTH 1000000//范围的上线

void fun(int n)
{
	if(n%10 == 6)//首先确定各位是6
	{
		int p = n/10;//6前边的数值
		int q = 6;

		while(p)
		{
			q *= 10;//6前边有几位,6就乘以10的几次方
			p /= 10;
		}
		 
		if(q+(n/10) == 4*n)//q+p == 4*n因为执行完while循环后p已经变成0
		{
			printf("%d\n",n);
		}
	}
}
int main()
{
	for(int i=0;i<=LENTH;++i)
	{
		fun(i);
	}
	return 0;
}

尾数前移

今天的文章尾数前移分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/5537.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注