常见的程序设计题

斐波那契数列

1.1 题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

 //斐波那契数列
        static void Main(string[] args)
        {
            for (int i = 1; i <= 12; i++)
            {
                Console.WriteLine(Foo(i));
            }
            Console.Read();
        }

        public static int Foo(int i)
        {
            if (i < 0)
                return 0;
            else if (i>0 &&i <= 2)//第一个月,第二个月兔子的总对数是1对
                return 1;
            else
                return Foo(i - 1) + Foo(i - 2);//第三月开始生1对新兔子(总数:2对),第四月时新生1对兔子(2+1=3对),第五月时新生两对兔子(3+2=5),第六月时新生3对兔子(5+3=8)
        }

判断素数

2.1 题目:判断101-200之间有多少个素数,并输出所有素数。

        //101-200之间的素数
        static void Main(string[] args)
        {
            int count = 0;
            for (int i = 101; i < 200; i++)
            {
                bool b = true;//默认此数为素数
                for (int j = 2; j <= Math.Sqrt(i); j++)
                {
                    if (i % j == 0)//能被2到该数开方直接的数整除 则不是素数
                    {
                        b = false;
                        break;
                    }
                }
                if (b)
                {
                    count++;
                    Console.WriteLine(i);
                }
            }
            Console.WriteLine("101-200之间的素数个数:" + count);
            Console.Read();
        }

水仙花数

3.1题目:打印出所有的"水仙花数(narcissus number)",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

        //所有的"水仙花数(narcissus number)"
        static void Main(string[] args)
        {
            int count = 0;
            for (int i = 100; i < 1000; i++)
            {
                var num = NarcissusNum(i);
                if (num != 0)
                {
                    count++;
                    Console.WriteLine(num);
                }
            }
            Console.WriteLine("100-1000之间的水仙花个数:" + count);
            Console.Read();
        }

        public static int NarcissusNum(int num)
        {
            int b = num / 100;//百位数
            int s = (num % 100) / 10;//十位数
            int g = (num % 100) % 10;//各位数

            if (b * b * b + s * s * s + g * g * g == num)//百位数+十位数+个位数之和等于该数即为水仙花数
                return num;
            else
                return 0;
        }
时间: 2024-08-28 10:09:39

常见的程序设计题的相关文章

算法程序设计题语言类笔记

1. 求幂 #include<math.h> //头文件 pow(a,b); //a^b 2. bool #include<stdbool.h> //C中使用bool型需要加入头文件 3. 字符串操作相关 #include<string.h> //头文件 char a[20],b[20]; strcpy(a,b); //把字符串b拷贝到a中 length=strlen(); //求长度 strcmp(a,b); //字符串比较,将a和b中的字符逐个比较,相同继续比较下一

java程序设计题库

选择题 答题要求:单选题,每题只有一个正确答案,选择正确给分,不正确不给分. 1. 下面(   A    )数据类型可用于main()方法中传递的参数 A.String   B.Integer   C.Boolean   D.Variant 2.以下的选项中能正确表示Java语言中的一个整型常量的是(    B   ) A.12. B.-20   C.1,000     D.4 5 6 3.下列的变量定义中,正确的是(   D    ) A.boolean b1="true";   B

2019年最新前端面试题,js程序设计题

都说机会是留给有准备的人的. 一年之计在于春,面对众多的前端技术,需要时刻充电自己. 我现在整理一些前端js面试程序题. 1.判断一个字符串中出现最多的字符,并计算出现的次数? 2.用css伪类实现下面的效果 <!DOCTYPE html> <html> <head> <title>button</title> <style type="text/css"> button{background:#000;color

Linux 中常见的填空题

一.填空题: 1. 在Linux系统中,以文件方式访问设备 . 2. Linux内核引导时,从文件/etc/fstab中读取要加载的文件系统. 3. Linux文件系统中每个文件用i节点来标识. 4. 全部磁盘块由四个部分组成,分别为引导块.专用块. i节点表块和数据存储块. 5. 链接分为:硬链接和符号链接. 6. 超级块包含了i节点表和空闲块表等重要的文件系统信息. 7. 某文件的权限为:d-rw-_r--_r--,用数值形式表示该权限,则该八进制数为:644,该文件属性是目录. 8. 前台

PTA 程序设计题(数据结构第一章)

C语言版 第一题 二分查找 感觉还好 Position BinarySearch(List L, ElementType X) { // 数组大小 // int N = sizeof(L->Data) / sizeof(*L->Data); int start = 1; int end = L->Last; int mid; while (start <= end) { mid = (start + end) / 2; if (L->Data[mid] > X) end

常见的算法题:逆行单一列表

思维:单用列表的第一个插成立.各插入一个节点的第一个节点后插入.第一头节点点NULL,然后用插值其余节点建表头,可以实现单链逆行. 代码: 设定目标单一列表L,结点int类型 void Reverse(LinkList &L) { int *p = L.head->next,*q; L.head->next = NULL; while(p!=NULL) { q = p->next; p->next = L.head->next; L.head->next = p

二级c程序设计题(2)

原文:http://www.cnblogs.com/imaker/p/6128049.html 所属年份:2010.9;2012.3编写函数fun,其功能是:根据以下公式求π的值(要求精度0.0005,即某项小于0.0005时停止迭代). 程序运行后,若输入精度0.0005,则程序应输出为3.14-.注意:部分源程序在文件PROG1.C中.请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句. 代码如下: #include <stdio.h> #inclu

几种常见的程序设计中命名规则

一.匈牙利命名法[Hungarian]: 广泛应用于象 Microsoft Windows 这样的环境中. Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一 位能干的 Microsoft 程序员查尔斯· 西蒙尼(Charles Simonyi) 提出的. 匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀, 标识出变量的作用域, 类型等.这些符号可以多个同时使用,顺序是先 m_(成员变量),再指针,再简单数据类型, 再其他.例如:m_lpszS

大数据常见面试算法题复习

1.海量日志数据,提取出某日访问百度次数最多的那个IP. 解:ip个数是4个0到256的数字来表示.所以他是2^32个. 扫描一下日志:直接把所有第一个数字是n的放到一个文件n里面.这样我们有256个文件了. 对每一个小文件,他里面找到访问百度次数最多的ip(可以字典计数).然后得到256个ip.在256个ip里面找最大的.整体效率O(N) 2.假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个.一个查询串的重复度越高,说明查询它的用户越多,也就