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; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)