关闭

uva10922 递归

271人阅读 评论(0) 收藏 举报
分类:

     



题目大意:


   有一个大家熟知的技巧, 如果一个N是9 的倍数,那么他的每位数字的和也是9的倍数, 基于递归测试, 求递归深度


代码:

#include<iostream>
#include<string>
using namespace std;

int main()
{

    string s ;
    while(cin>>s)
    {
        if(s.length() == 0 || s[0] == '0')
        {
            break;
        }
        int sum = 0;
        for(int i = 0 ; i < s.length(); i++)
        {
             sum +=s[i] -'0';
        }
        int dep = 0;
        int  is9mul = 0;
        if(sum %9 ==0)
        {//如果一个数是9的倍数,那么他肯定是能一直递归下去的
            is9mul = 1;
            dep = 1 ;     //开始的时候,只要能被9整除那么深度就是1
        }
        while(sum%9 == 0 && sum>9)
        {
            int temp = sum;
            sum  = 0;
            while(temp)
            {
                sum += temp%10;
                temp /=10;    //
            }
            dep++;
        }
        cout << s << " is ";
        if (!is9mul) cout << "not ";
        cout << "a multiple of 9";
        if (dep) cout << " and has 9-degree " << dep;
        cout << "." << endl;
    }
    return 0;
}


关于java 基础:

          1. 一个. java 源文件, 中可以包括多个类么?有什么限制?

                  可以有多个类, 但是只能有一个public 类, 并且public 类的名字,必须和文件名是一致的

         2. java有没有goto 语句

              是java 保留字, 现在已经不适用了

         3.  在java中如何跳出当前的多重嵌套循环

                在java 中使用带标号的Break 语句

          ok : 

               for(int i = 0 ; i < n ; i++)

                { 

                        for(int j = 0 ; j < k ; j++)

                       {
                                   System.out.println("i = " i + "j = " + j);

                                   if (j == 5) break ok;

                       }

                 }

                  这样就可以跳出多个循环

       当然也可以不适用这个带标号的循环, 可以用一个标志位 flag     在第一重循环, 使用标识位, 在最后循环体内, 

        4.switch 语句能否作用在byte 上, 能否作用在long 上, 能否作用在    String上

                swith(

   

0
0
查看评论

uva_10922

#include #include using namespace std; char str[100]; int main() { int i,j,sum=0,deep=0; while(cin>>str) { sum=0; deep=0; if(strlen(st...
  • acm_JL
  • acm_JL
  • 2015-12-13 21:51
  • 251

uva 10479(找规律+递归)

题意:有一个初始序列第一个数字是0, 规律是把前一次推出来的每一个数字x,先接x个0,然后接x+1。 0 –> 1 –> 02 –> 1003 –> 02110004 那么这个序列就变成0,1,0,2,1,0,0,3,0,2,1,1,0,0,0,4… 问序列里第n个数...
  • u013392752
  • u013392752
  • 2015-07-12 18:11
  • 732

UVa10922:2 the 9s

  • Toby__Lin
  • Toby__Lin
  • 2018-02-08 19:47
  • 5

广度优先遍历_改造为递归方式

import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; /**第05讲-广度优先遍历_改造为递归方式 * ------------------------...
  • u011925500
  • u011925500
  • 2014-03-01 16:05
  • 2249

很有帮助学习递归:从简单到复杂。

递归              什么叫递归: 自己调用自己                &...
  • chizhongwenshan
  • chizhongwenshan
  • 2016-04-04 22:25
  • 268

汇编语言学习系列 递归实现

假如汇编语言要实现如下C语言的功能,编译环境Ubuntu14.04(32位)。 #include int refact(int n){ if(n == 1) return 1; else return n * refact(n - 1); } i...
  • csujiangyu
  • csujiangyu
  • 2015-03-01 14:04
  • 1600

jstl处理递归问题

需要两个jsp页面,一个是你要显示树的jsp页面tree.jsp,一个是递归构造树的页面recursive.jsp  显示树的jsp页面,tree.jsp  Html代码   %@ page language="java...
  • fengspg
  • fengspg
  • 2014-10-29 20:53
  • 2593

优化递归的效率

函数递归调用是很常见的做法,但是它往往是低效的,本文探讨优化递归效率的思路。 1.尾递归转换成迭代 尾递归是一种简单的递归,它可以用迭代来代替 比如 求阶乘函数的递归表达 int f(int n) {     if(n0)re...
  • GarfieldEr007
  • GarfieldEr007
  • 2015-12-24 12:50
  • 2045

递归创建文件和文件夹

WIndows API函数CreateFile和CreateDirectory用于创建文件和目录,但设想这样一种情况:需要创建文件C:/test/test.txt,但是C:/test/目录不存在,简单地调用CreateFile不会成功了,创建目录也是一样。我在Windows API找了很久,没找到能...
  • Jofangkm
  • Jofangkm
  • 2009-03-12 17:42
  • 4569

递归求解逆波兰表达式

逆波兰表达式特征: 1.每个运算符两边是两个逆波兰表达式。 2.不用加括号就可以确定运算顺序 栗子:*/+12 36 + 1 3 - 15 8 设n()函数为求解逆波兰表达式的递归程序 1:n()*n() 2:n(n()/n())*n() 3:n(n( + )/n( + ))*n( - ) so:(...
  • ccc_zq
  • ccc_zq
  • 2016-03-27 20:28
  • 715
    个人资料
    • 访问:268898次
    • 积分:5881
    • 等级:
    • 排名:第5198名
    • 原创:341篇
    • 转载:13篇
    • 译文:0篇
    • 评论:28条
    感谢打赏 支付宝二维码
    支付宝
    微信公众号 欢迎关注
    微信
    发福利啦 支付宝扫码有红包
    支付宝
    最新评论