1.循环算法: void PrintN_1(int N) { int i; ; i <= N; i++) printf("%d\n", i); return; } N可以为任意数量级的整数 2.递归算法: void PrintN_2(int N) { if (N) { PrintN_2(N - ); printf("%d\n", N); } } 当N为10^4个数量级的时候程序就会非正常中断,要计算PrintN_2(N),因为这个函数里还有其他的语句,所以要先…
//N个数全排列的非递归算法 #include"stdio.h" void swap(int &a, int &b) { int temp; temp = a; a = b; b = temp; } /* 根据当前的排列p,计算下一个排列. 原则是从1234–>4321,若p已经是最后一个排列,传回false,否则传回true. p是一个n维向量. */ bool nextPermutation(int *p, int n) { ; int i,j,k; //从后…
package cn.xiaocangtian.testFile; import java.io.File; public class FileTree { public static void main(String[] args) { File f = new File("E:/Java_All_Code/TestFile/src/cn/xiaocangtian/testFile"); printFile(f, 0); } static void printFile(File fi…
最近几年一直在教育行业工作,主要负责竞赛类系统的开发工作,包括网上报名,安排考场,在线考试,学业报告书等. 打印功能在这个信息化时代非常普遍,浏览器都自带打印功能,通常的做法是调用 window.print() 完成. 于是教学部对我们互联网信息部提出了一个更高级别的需求:批量打印!对于所有参加考试的学生,需要打印每个学生的学业报告书,一共4份,考试总体概况1个页面,单科语数外成绩页面共3个页面,合计一共是4个页面. 需求定下来了,必须的做呀,我们老大强力要拦下这个需求,还是被驳回,可怜的程序员…
1.字符串的翻转,这里一般是字符数组.不包括字符串字面值. char* reversal_str(char* str,size_t size); 翻转之后的字符串是原来的字符串的翻转. #include <stdio.h> #include <string.h> char* reversal(char* str,size_t len) { if(str != NULL) { char* start = str; ; char ch; while(start < end) //…
package Tree; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; /** * 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行. * 思路: * 按层次输出二叉树 * 访问根节点,并将根节点入队. * 当队列不空的时候,重复以下操作. * 1.弹出一个元素.作为当前的根节点. * 2.如果根节点有左孩子,访问左孩子,并将左孩子入队. * 3.如果根节点有右孩子…
package Tree; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; /** * 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. * 思路: * 先按层次输出二叉树 * 判断奇数层和偶数层 * 反转arrayList */ public class Solution9 { publ…
一.打印效果 二.实现代码汇总 为了方便初学者对代码的理解,建议熟练t1到t5为各种三角的打印,然后再进行菱形的打印实现. package circulationDemo; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("请输入要打印的行数:"…
// 面试题32(二):分行从上到下打印二叉树 // 题目:从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层 // 打印到一行. #include <cstdio> #include "BinaryTree.h" #include <queue> void Print(BinaryTreeNode* pRoot) { if (pRoot == nullptr) return; std::queue<BinaryTreeNode*> n…
(说明:本博客中的题目.题目详细说明及参考代码均摘自 “何海涛<剑指Offer:名企面试官精讲典型编程题>2012年”) 题目 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数.比如输入 3,则打印出 1,2,3 一直到最大的 3 位数即 999 . 算法设计思想 由于最大的 n 位十进制可能超过整型范围的限制,而成为大数问题.本题目的关键是如何实现大数的表示或运算.本博客采用参考书中的两种方法,将从 1 到最大 n 位数之间的所有数都看作 n 位数,实际的数若不足 n 位,则在前补…