算法-整数的正序和逆序输出

其实上一篇文章用递归实现了整数的正序输出,思考了整数还是可以逆序输出,不过大同小异,没有太多差别:

正序输出

-(void)printOutNumber:(NSInteger)number{
    //取整,不断的递归取整,之后取余
    if (number>10) {
        [self printOutNumber:number/10];
    }
    NSLog(@"数值%ld",number%10);
}

逆序输出

循环输出,这个比较简单容易理解:

-(void)reverseNumber:(NSInteger)number{
    while (number!=0) {
        NSLog(@"当前的数值:%ld",number%10);
        number=number/10;
    }
}

同样的我们可以改造一下正序输出的程序,让其逆序输出:

-(void)reverseNumber:(NSInteger)number{
    if(number>10) {
        NSLog(@"FlyElephant:%ld",number%10);
        [self reverseNumber:number/10];
    }else{
        NSLog(@"FlyElephant%ld",number%10);
    }
}
时间: 2024-10-14 06:24:46

算法-整数的正序和逆序输出的相关文章

单链表逆序或者逆序输出

分为两种情况,一种是只逆序输出,实际上不逆序:另一种是把链表逆序. ********************逆序输出*********************** 1 #include<iostream> 2 #include<stack> 3 #include<assert.h> 4 using namespace std; 5 6 7 typedef struct node{ 8 int data; 9 node * next; 10 }node; 11 12 //

用结构体指针存储数据__正序_逆序下的输入

逆序输入 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <malloc.h> 4 #define maxn 1000 5 6 //邻接表(点很多,边较少) 7 //共有n个点,点编号为1~n,m条边 8 //无向图 9 10 struct node 11 { 12 long value; 13 struct node *next; 14 }*d[maxn+1]; 15 16 int main() 17 { 1

算法题:链表的递归逆序

#include <iostream> using namespace std; struct Node { int data; Node *next; Node(int d = int()) :data(d), next(NULL){} }; class Clist { public: Clist(int a[], int n) :first(NULL) { int i = 0; Node *p = NULL; for (; i < n; i++) { Node *s = new No

字符串反序,逆序输出字符串

要注意\0问题. 在下面++,而不是在while中++. --j.但是也不对,会把\0结束符弄到前面. 改为: #include "stdafx.h" void Reverse(char str[]) { int i=0,j=0; char c=0; while(str[j]) ++j; while(i<--j) { c=str[i]; str[i]=str[j]; str[j]=c; ++i; } //看下面,是先将a和g对调,d和d对调,依次首尾对调. } int _tmai

笔记-NSArray 逆序reverseObjectEnumerator 及 NSEnumerator 遍历

//1.原始数组 NSMutableArray *array = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",nil]; //2.倒序的数组 NSArray* reversedArray = [[array reverseObjectEnumerator] allObjects]; 输出 reversedArray 为 3 2 1. //2.枚举器法 NSLog(@"------- 枚

句子逆序,近义词维护,数字颠倒,蛇形矩阵

一.句子逆序描述:  将一个英文语句以单词为单位逆序排放.例如“I am a boy”,逆序排放后为“boy a am I” 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符 接口说明 /**  * 反转句子  *   * @param sentence 原句子  * @return 反转后的句子  */ public String reverse(String sentence); 1 public class StringReverse { 2 public static

OJ初级-句子逆序,近义词维护,数字颠倒,蛇形矩阵

备注:所有基础的练习题都不能借助相应功能的工具函数 一.句子逆序描述:  将一个英文语句以单词为单位逆序排放.例如“I am a boy”,逆序排放后为“boy a am I” 所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符 接口说明 /**  * 反转句子  *   * @param sentence 原句子  * @return 反转后的句子  */ public String reverse(String sentence); 二.近义词维护 给定接口,设置两个单词相互

数组操作之遍历,排序,逆序

数组遍历: 索引遍历 枚举遍历: NSEnumerator* enumerator = [array objectEnumerator]; id e = nil; while (e = [enumerator nextObject]) { NSLog(@"e = %@", e); } 代码块遍历: // 示例1:枚举遍历 [array enumerateObjectsUsingBlock:^ (id obj, NSUInteger idx, BOOLBOOL *stop){ NSLog

链表逆序2

问题来源:选自LeetCode 92:反转链表 II 问题描述: 反转从位置 m 到 n 的链表.请使用一趟扫描完成反转. 说明: 1 ≤ m ≤ n ≤ 链表长度. 示例: 输入: 1->2->3->4->5->NULL, m = 2, n = 4 输出: 1->4->3->2->5->NULL 题目给定信息: 问题分析: 这道题也是要求实现链表的逆序,但是不同的地方在于要求在链表中规定的某一部分实现链表的逆序.那么我们可以把这个链表分为三部分