//水仙花数
#include <stdio.h>
int main()
{
int hun, ten, ind, n;
printf("result is:");
for( n=100; n<1000; n++ ) /整数的取值范围/
{
hun = n / 100;
ten = (n-hun100) / 10;
ind = n % 10;
if(n == hunhunhun + tententen + indind*ind) /各位上的立方和是否与原数n相等/
printf("%d ", n);
}
printf("\n");
return 0;
}
迭代方式求斐波那契数列第n项
#include<stdio.h>
int main()
{
int a = 1;
int b = 1;
int c = 1;
int n = 0;
scanf("%d", &n);
while (n>2)
{
c = a + b;
a = b;
b = c;
n--;
}
printf("%d\n", c);
return 0;
}
求斐波那契数列第n项,采用递归
#include<stdio.h>
int Fib(int n)
{
if (n <= 2)
return 1;
return Fib(n - 1) + Fib(n - 2);
}
int main()
{
int n = 0;
scanf("%d", &n);
printf("%d\n",Fib(n));
return 0;
}
如有帮助,请点个赞
#include<stdio.h>
int main()
{
int i,a,b,c;
for(i=999;i>=100;i--)
{
a=i%10;b=(i/10)%10;c=(i/100)%10;
if (i==a*a*a+b*b*b+c*c*c)
printf("%d ",i);
}
return 0;
}
#include<stdio.h>
int main()
{int n,i;
scanf("%d",&n);
int a[n];
a[0]=1;a[1]=1;
for(i=2;i<n;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<n;i++)
printf("%d ",a[i]);
return 0;
}
//题目一,Fibonacci,题目标明考函数和递归
//虽然我用F#写,但用其他语言写也都是一样。无非是换成其他语言的if,swich
//用F#么,只是我在训练自己的纯函数编程代码
let rec fb i=
match i with
| 0->7
| 1->11
| n->fb(n-1)+fb(n-2)
printf "%d" (fb 2)
printf "\r\n"
//题目2 水仙花数,题目标明 为流程控制
//那么控制啥呢,从题目分析可知,主要控制的是Range范围
//a,b大小未知,位数要>=3
//F#可以组合函数,不过练习。我先把函数拆开,比较好看点。F#组合起来的话不熟悉的人,那个玩意看着都头晕
//生成控制
let r (a:int) (b:int)=
let min1=System.Math.Max(100, System.Math.Min(a,b))
let max1=System.Math.Max(a,b)
//最大值比100都小就返回空集合
//否则取最小值和100比较,最小比100小取100
if max1<100 then [] else [min1 .. max1]
//递归计算每位立方和
let rec compute i =
let y=i%10
match i with
| n when n<10-> n*n*n
| _-> y*y*y+compute(i/10)
//统计,从给定列表中析出立方和和字面值相同的
let count arr=
match arr with
|[]->0
|_->(List.filter(fun p->p=compute p) arr).Length
printf "%d" (count (r 3 1000))
ps:代码其实无所谓用啥语言,这代码如果明白意思,翻译成C++,C#,java都一样。题目2我特意没有用F#的函数组合就是因为目前这代码还是通用语法,还可以转换成任意语言的