基于visual Studio2013解决C语言竞赛题之0417四倍数






题目


解决代码及点评

这道题目还是考察循环,通过循环遍历1234~9876,然后将每个数都用算法判断其是否符合条件#include <stdio.h>
#include <stdlib.h>
int f4171(int num)
{
	int count=0;
	while(num)
	{
		count++;
		num/=10;
	}
	return count;
}

// 这个函数返回位数的转换
int f4172(int num)
{	
	int sum=0;//要返回的数字

	// 计算num有多少位
	int n=f4171(num);
	int Times=1;
	// 计算位数对应的最小值,比如四位是1000
	for (int i=1;i<n;i++)
	{
		Times*=10;
	}
	// 翻转
	while(num)
	{
		int temp=num%10; // temp保存当前最后一位
		sum+=temp*Times; // 将最后一位成语当前的times,累加到和
		num/=10;        // num去掉一位
		Times/=10;      // times也去掉一位,准备下次的循环
	}
	return sum;
}
void main()
{

	for (int i=1234;i<9876;i++) // 遍历
	{
		if (i==4*f4172(i)) // 如果经过转换后,再乘以4等于自身,说明符合条件
		{
			printf("%4d",i);
			break;
		}
	}
	system("pause");
}


代码下载及其运行

代码下载链接:

http://download.csdn.net/detail/yincheng01/6640977

解压密码为c.itcast.cn


下载解压后用VS2013打开工程文件

点击 “本地Windows调试器” 执行


程序运行结果






你可能感兴趣的:(基于visual Studio2013解决C语言竞赛题之0417四倍数)