IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 第1部分语言篇-第2章循环结构程序设计-2.5习题 -> 正文阅读

[C++知识库]第1部分语言篇-第2章循环结构程序设计-2.5习题

1.1 习题2-1 水仙花数(daffodil)

题目描述:
输出 100 ~ 999 100 \sim 999 100999 中的所有水仙花数。若 3 位数 A B C A B C ABC 满足 A B C = A 3 + B 3 + C 3 A B C=A^{3}+B^{3}+C^{3} ABC=A3+B3+C3, 则称其为水仙花 数。例如 153 = 1 3 + 5 3 + 3 3 153=1^{3}+5^{3}+3^{3} 153=13+53+33, 所以 153 是水仙花数。

1.2 C++语言实现

/**
* @author AlbertDarren
* @contact 2563491540@qq.com
*/
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
    int hundreds_digit,tens_digit,ones_digit;
    for (int i=100;i<1000 ;++i )
    {
        hundreds_digit=i/100;
        tens_digit=(i/10)%10;
        ones_digit=i%10;
        if (pow(hundreds_digit,3)+pow(tens_digit,3)+pow(ones_digit,3)==i)
        {
            printf("%d\n",i);
        }
    }
	return 0;
}

2.1 习题2-2 韩信点兵(hanxin)

题目描述:
相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排、五人 一排、七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了。输入包含多组 数据,每组数据包含3个非负整数a,b,c,表示每种队形排尾的人数(a<3,b<5,c< 7),输出总人数的最小值(或报告无解)。已知总人数不小于10,不超过100。输入到文件 结束为止。
样例输入:
2 1 6
2 1 3
样例输出:
Case 1: 41
Case 2: No answer

2.2 C++语言实现

/**
* @author AlbertDarren
* @contact 2563491540@qq.com
*/
#include <iostream>

using namespace std;

int main()
{
    freopen("ch2-loopStructureProgramming-ex2-2-hanxin.in","r",stdin);
    freopen("ch2-loopStructureProgramming-ex2-2-hanxin.out","w",stdout);
    int a,b,c,kase=0;
    while (scanf("%d%d%d",&a,&b,&c)!=EOF)
    {
        bool flag=false;
        int i=10;
        for (;i<=100 ;++i )
        {
            if ((i%3==a)&&(i%5==b)&&(i%7==c))
            {
                flag=true;
                break;
            }
        }
        ++kase;
        if (flag)
        {
            printf("Case %d: %d\n",kase,i);
        }
        else
        {
            printf("Case %d: No answer\n",kase);
        }
    }
	return 0;
}

3.1 习题2-3 倒三角形(triangle)

题目描述:
输入正整数n≤20,输出一个n层的倒三角形。例如,n=5时输出如下:
#########
?#######
??#####
???###
????#

3.2 C++语言实现

/**
* @author AlbertDarren
* @contact 2563491540@qq.com
*/
#include <iostream>
#include <string>
using namespace std;

int main()
{
    short n;
    scanf("%d",&n);
    for (short i=n; i>=1 ; --i )
    {
        string line="";
        line+=string(n-i,' ');
        line+=string(2*i-1,'#');
        line.append("\n");
        printf(line.c_str());
    }
    return 0;
}

4.1 习题2-4 子序列的和(subsequence)

题目描述:
输入两个正整数n<m< 1 0 6 10^6 106,输出 1 n 2 + 1 ( n + 1 ) 2 + ? + 1 m 2 \dfrac{1}{n^{2}}+\dfrac{1}{(n+1)^{2}}+\cdots+\dfrac{1}{m^{2}} n21?+(n+1)21?+?+m21?,保留5位小数。输入包含多组数据, 结束标记为n=m=0。提示:本题有陷阱。
样例输入:
2 4
65536 655360
0 0
样例输出:
Case 1: 0.42361
Case 2: 0.00001

4.2 C++语言实现

/**
* @author AlbertDarren
* @contact 2563491540@qq.com
*/
#include <iostream>
using namespace std;

int main()
{
    freopen("ch2-loopStructureProgramming-ex2-4-subsequence.in","r",stdin);
    freopen("ch2-loopStructureProgramming-ex2-4-subsequence.out","w",stdout);
    int n,m,kase=0;
    double sum;
    while (scanf("%d%d",&n,&m)!=EOF&&n&&m)
    {
        sum=0.0;
        for (int i=n;i<=m ;++i )
        {
            sum+=(double)1/i/i;//avoid integer overflow
        }
        printf("Case %d:%.5lf\n",++kase,sum);
    }
	return 0;
}

5.1 习题2-5 分数化小数(decimal)

题目描述:
输入正整数 a , b , c a, b, c a,b,c, 输出 a / b a / b a/b 的小数形式, 精确到小数点后 c c c 位。 a , b ≤ 1 0 6 , c ≤ 100 a, b \leq 10^{6}, c \leq 100 a,b106,c100 。输 入包含多组数据, 结束标记为 a = b = c = 0 a=b=c=0 a=b=c=0
样例输入:
1 6 4
0 0 0
样例输出:
Case 1: 0.1667

5.2 C++语言实现

/**
* @author AlbertDarren
* @contact 2563491540@qq.com
*/
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
double round2digit(double decimal,int digit)
{
    return floor((decimal*pow(10,digit)+0.5))/pow(10,digit);
}
int main()
{
    freopen("ch2-loopStructureProgramming-ex2-5-decimal.in","r",stdin);
    freopen("ch2-loopStructureProgramming-ex2-5-decimal.out","w",stdout);
    int a,b,c,kase=0;
    while (scanf("%d%d%d",&a,&b,&c)==3&&a&&b&&c)
    {
       string output="Case %d:%.";
       output.append(to_string(c));
       output.append("lf\n");
       printf(output.c_str(),++kase,round2digit((double)a/b,c));
    }
	return 0;
}

6.1 习题2-6 排列(permutation)

题目描述:
1 , 2 , 3 , … , 9 1,2,3, \ldots, 9 1,2,3,,9 组成 3 个三位数 a b c \mathrm{abc} abc, d e f \mathrm{def} def g h i \mathrm{ghi} ghi, 每个数字恰好使用一次, 要求 a b c \mathrm{abc} abc : d e f \mathrm{def} def: g h i = 1 : 2 : 3 \mathrm{ghi}=1: 2: 3 ghi=1:2:3 。按照“ a b c ? d e f ? g h i \mathrm{abc~def~ghi} abc?def?ghi”的格式输出所有解,每行一个解。提示:不必太动脑筋。

6.2 C++语言实现

/**
* @author AlbertDarren
* @contact 2563491540@qq.com
*/
#include <iostream>
#include <set>
using namespace std;

int main()
{
    short three_digit,hundreds_digit,tens_digit,ones_digit;
    for (short i=123; i<=987 ; ++i )
    {
        bool digit_unique_in=true;//default
        set<short> digits_set;
        digits_set.insert(0);
        for (short j=1; j<=3 ; ++j )
        {
            three_digit=j*i;
            hundreds_digit=three_digit/100;
            tens_digit=(three_digit/10)%10;
            ones_digit=three_digit%10;
            if (!(digits_set.insert(hundreds_digit).second&&digits_set.insert(tens_digit).second&&
                    digits_set.insert(ones_digit).second&&(to_string(three_digit).size()==3)))
            {
                digit_unique_in=false;
                break;
            }
        }
        if (digit_unique_in)
        {
            printf("%d %d %d\n",i,2*i,3*i);
        }
    }
    return 0;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 15:59:31  更:2022-04-06 16:03:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:10:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码