首页 > 专题系列 > C基础练习 > C语言程序设计-自整除数[选择结构]
2013
12-03

C语言程序设计-自整除数[选择结构]

【问题描述】对一个整数n(n<10000),如果其各个位数的数字相加得到的数m能整除n,则称n为自整除数。
例如21,21%(2+1)==0, 所以21是自整除数。
【输入形式】一个整数n。
【输出形式】若n为自整除数,则输出TRUE,否则输出FALSE。
【样例输入】42
【样例输出】TRUE
【样例说明】说明42是自整除数。
【评分标准】本题共4个测试点,每个测试点0.25分,全部答对得1.0分。

#include <stdio.h>

int main()
{
	int num;
	scanf("%d",&num);

	int result = 0;
	int x,y,z,n;

	if(num > 999)
	{
     x = num / 1000;
	 y = num % 1000 / 100;
	 z = num % 1000 % 100 / 10;
	 n = num % 1000 % 100 % 10;
	 result = n + z  + y + x;
	}
	else if(num > 99 )
	{
		x = num / 100;
		y = num % 100 / 10;
		z = num % 100 % 10;
		result = z + y + x;

	}else if(num > 9)
	{
		x = num / 10;
		y = num % 10 ;
		result = y + x;
	}else
	{
		result = num;
	}

	if( num % result == 0)
	{
		printf("%s\n","TRUE");
	}
	else
	{
		printf("%s\n","FALSE");
	}
	return 0;
}

 


  1. 学算法中的数据结构学到一定程度会乐此不疲的,比如其中的2-3树,类似的红黑树,我甚至可以自己写个逻辑文件系统结构来。

  2. 思路二可以用一个长度为k的队列来实现,入队后判断下队尾元素的next指针是否为空,若为空,则出队指针即为所求。