#include <stdio.h>
void mysort(int *a, int size)
{
int i, j, k, t
for (i = 0i <size - 1++i)
{
k = i
for (j = ij <size++j)
{
if (a[k] >a[j])
k = j
}
if (k != i)
{
t = a[i]
a[i] = a[k]
a[k] = t
}
}
}
void main()
{
int num, a[4], max, min
do
{
scanf("%d", &num)/* 输入最初的4位数 */
} while (num <1000 || num >9999)
while (num)
{
/* 将4位数分解成4个独立的数字,并保存在a数组中 */
a[0] = num % 10
num /= 10
a[1] = num % 10
num /= 10
a[2] = num % 10
num /= 10
a[3] = num
/* 排序数组元素 */
mysort(a, 4)
/* 从数组的4个元素中产生最大数字和最小数字 */
max = a[3] * 1000 + a[2] * 100 + a[1] * 10 + a[0]
min = a[0] * 1000 + a[1] * 100 + a[2] * 10 + a[3]
/* 产生新的4位数 */
num = max - min
printf("%d\n", num)
if (num == 6174)
break
}
printf("The magic number is: %d\n", num)
}
第一个问题:复杂的C程序可以破解吗?简单地说在复杂的东西也是可以解开的,只是不同的程序,不同Level的人所需要的时间不一样。
第二个问题:复杂算法的程序怎么写的代码?
如果一点没接触算法,这肯定是很吃力的,这个问题也没有直接的回答。但是可以通过学习来提高自己的算法能力。
比如看一些初级的算法类的书,从简单到难慢慢提高。
一开始不要看复杂的是会打击自己的自信心,循序渐进的提高。
看过一些书后,可以自己尝试开始写代码,不会的也可以看看别人写的源码,网上也有很多开源的代码可以学习。
学习的起点不重要,还是得能坚持。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)