一些数字的表达,与数学问题的C语言解法

一些数字的表达,与数学问题的C语言解法,第1张

一些数字的表达,与数学问题的C语言解法

1.一个三位数字的表达 

a*100+b*10+c

用函数将abc限制,即可拆分使用abc

for(i=1; i<=9; i++)
for(j=0; j<=9; j++)
for(k=0; k<=9; k++)  (拼接法)

但是这样还是显得麻烦,因为在一些情况中for需要与{}一同使用,而且我们还需要用语句将其合并起来

a=x/100;
b=x/10%10;
c=x%10;(分割法)

我们可以先设定这个三位数为X

即x=123.

a=x/100;           //a=1
b=x/10%10;     //b=2
c=x%10;          //c=3

2.水仙花

水仙花数:即一个数的每一位数的立方等于和等于它本身

这种问题用笔算(数学方法)显然较困难

但是用计算机即可用这种表示

(x==a*a*a+b*b*b+c*c*c)

#include 
#include 
int main( )
{
int x, a, b, c;
for(x=100; x<=999; x++)
{
a=x/100;
b=x/10%10;
c=x%10;
if(x==a*a*a+b*b*b+c*c*c)
printf("%d ", x);
}
system("pause");
return 0;
}

3.判断一个数是否是素数

#include
#include
#include
int main()
{
	int a=0, b, c;
	scanf("%d", &a);
	c = 0;
	for ( b= 2; b<=a-1; b++)
	{
		if (a%b==0)
		{
			c++;
			printf("%d的约数有:", a);
			printf("%dn", b);
		}
		if (c == 0) {
			printf("%d是质数", a); break;
		}
	}
	return 0;

4.缺空计算

一个经典的奥赛题

 但是如果用计算机以一个重复的动作进行,可以马上就将其解出

#include 
#include 
int main()
{
	int i;
	for (i = 1; i <= 9; i++)
	{
		if ((i*10 + 3)*6528 == (30 + i)*8256)
			printf("%d", i);
	}
	return 0;
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5115033.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存