c语言-C语言用递归函数输出1000以内的水仙花数,不得使用循环,请问怎么写。

问题描述

C语言用递归函数输出1000以内的水仙花数,不得使用循环,请问怎么写。

C语言用递归函数输出1000以内的水仙花数,不得使用循环,请问怎么写。

解决方案

 #include <stdio.h>
void fun(int n)
{
    if(n<100 || n>1000) return;
    int a,b,c;
    c=n%10;
    b=n/10%10;
    a=n/100%10;
    if(a*a*a+b*b*b+c*c*c == n) printf("%dn",n);
    fun(n+1);
}
void main()
{
    fun(100);
}

解决方案二:

这么多提问递归,其实递归也是构成循环,就像GOTO也可以构成循环是一样的道理,没什么区别。

解决方案三:

为什么不要使用循环?

解决方案四:

 循环反而不适合
时间: 2016-05-05
Tags: c语言

c语言-C语言用递归函数输出1000以内的水仙花数,不得使用循环,请问怎么写。的相关文章

c语言-C语言计算1000以内的水山花数,打印所有的水山花数出来

问题描述 C语言计算1000以内的水山花数,打印所有的水山花数出来 C语言计算1000以内的水山花数,打印所有的水山花数出来 解决方案 http://blog.csdn.net/tian19930910/article/details/8170967 解决方案二: //? ? int d = 0; //? ? for (int a = 1; a <= 9; a++) { //? ? ? ? for (int b = 0; b <= 9; b++) { //? ? ? ? ? ? for (in

php输出1000以内质数

 这篇文章主要介绍了php输出1000以内质数的示例,需要的朋友可以参考下   代码如下: <?php for($i = 2; $i < 1001; $i++) {  $primes = 0;  for($k = 1; $k <= $i; $k++)  if($i%$k === 0) $primes++;  if($primes <= 2) // 能除以1和自身的整数(不包括0)  echo "<strong>{$i}</strong><br

PHP求小于1000的所有水仙花数的代码_php技巧

水仙花数是一个n(>=3)位数字的数, 它等于每个数字的n次幂之和. 例如, 153是一个水仙花数, 153=1³+5³+3³. 编写程序, 求解小于1000的所有水仙花数. 复制代码 代码如下: <?php for($i=100;$i<1000;$i++){ $a=intval($i/100); $b=intval($i/10)%10; $c=$i%10; if(pow($a,3)+pow($b,3)+pow($c,3)==$i){ echo $i."\t"; }

php输出1000以内质数(素数)示例_php实例

复制代码 代码如下: <?phpfor($i = 2; $i < 1001; $i++) { $primes = 0; for($k = 1; $k <= $i; $k++) if($i%$k === 0) $primes++; if($primes <= 2) // 能除以1和自身的整数(不包括0) echo "<strong>{$i}</strong><br />";}

输出100-1000之间所有的“水仙花数”

查看全套"c语言习题集" 题目: 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方. 1.程序分析: 利用for循环控制100-999个数,每个数分解出个位,十位,百位. 2.程序源代码: #include "stdio.h"#include "conio.h"main(

语言 水仙花数算法-水仙花数代码如何减短运行时间

问题描述 水仙花数代码如何减短运行时间 水仙花数是指一个N位正整数(N>=3),它的每个位上的数字的N次幂之和等于它本身.例 如:153 = 13 + 53+ 33. 本题要求编写程序,计算所有N位水仙花数. 输入格式: 输入在一行中给出一个正整数N(3<=N<=7). 输出格式: 按递增顺序输出所有N位水仙花数,每个数字占一行. 输入样例:3 输出样例:153 370 371 407 我的代码运行起来超时;我知道可能是n=7时循环次数太多造成的.有什么办法解决呢 include inc

c语言-C语言题程序第二个输出结果是124还是125呢?求大侠帮忙解释

问题描述 C语言题程序第二个输出结果是124还是125呢?求大侠帮忙解释 #includeint change(int *data){ return (*data)++;}main(){ int data=123; change(&data); printf(""%ddata); data=change(&data); printf(""%d""data); printf(""n"");}V

c语言-关于C语言的/r和/n输出结果

问题描述 关于C语言的/r和/n输出结果 初学C,今天看代码看到这样一段案例: #include void main(void) { printf("1abcdefghijklmnn"); printf("2opqrstuvwxyz01|------r"); printf("3mmmmmmmmmmmmmmn"); } 然而这程序输出的结果是: 1abcdefghijklmn 3mmmmmmmmmmmmmm|------ 把第二句的 r 换成 n

c语言-C语言牛顿迭代法,正常运行输出错误结果,求助

问题描述 C语言牛顿迭代法,正常运行输出错误结果,求助 求方程ax^3+bx^2+c^x+d=0的解,其中xn+1=xn-f(xn)/f'(xn) 我的代码这样写的: #include #include int main(void) { int a,b,c,d; printf("Please input four integers:"); scanf("%d %d %d %d",&a,&b,&c,&d); double x,y; x=