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

1201人阅读 评论(0) 收藏 举报
分类:





题目


解决代码及点评

这道题目还是考察循环,通过循环遍历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调试器” 执行


程序运行结果





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4587295次
    • 积分:62053
    • 等级:
    • 排名:第33名
    • 原创:1325篇
    • 转载:70篇
    • 译文:34篇
    • 评论:5747条
    博客专栏
    尹成老师
    最新评论