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





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

题目

基于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四倍数

程序运行结果

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




上一篇:Java基础-进程与线程之Thread类详解


下一篇:编译原理中的词法分析(lexical analysis)/扫描环节