【C初始之习题四】

1.在屏幕上输出以下图案:

       *
     ***
    *****
   *******
  *********
 ***********
*************
 ***********
  *********
   *******
    *****
     ***
      *

此题思路:两次遍历,逐个输出。
--------------------------------------------------------------我是分割线-----------------------------------------------------------------------

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i = 0, j = 0;
    int n = 7;
    for (i = 1; i <= n; i++){
        for (j=1; j <= n - i; j++){
            putchar(‘ ‘);
        }
        for (j=0; j < 2 * i - 1; j++){
            putchar(‘*‘);
        }
        putchar(‘\n‘);
    }
    for (i = n - 1; i>0&&i < 2*n - 1; i--){
        for (j = 1; j <= n - i; j++){
            putchar(‘ ‘);
        }
        for (j = 0; j < 2 * i - 1; j++){
            putchar(‘*‘);
        }
        putchar(‘\n‘);
    }
    system("pause");
    return 0;
} 

2.求出0~999之间的所有“水仙花数”并输出。
“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。

/
在数论中,水仙花数(Narcissistic number)也称为自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),是指一N位数,其各个数之N次方和等于该数。
例如153、370、371及407就是三位数的水仙花数,其各个数之立方和等于该数:
153 = 1^3 + 5^3 + 3^3。
370 = 3^3 + 7^3 + 0^3。
371 = 3^3 + 7^3 + 1^3。
407 = 4^3 + 0^3 + 7^3。
/
解题思路:善用模运算和除运算;C中数学函数次方表示:pow(底数,指数),例d=i^3则 表示为pow(i,3)

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    int i, a = 0, b = 0, c = 0;
    double num = 0;
    printf("输出0--999之间的水仙花数:\n");
    for (i = 99; i <= 999; i++){
        a = i / 100;//百位
        b = i / 10%10;//十位
        c = i % 10;//个位
        num = pow(a, 3) + pow(b, 3) + pow(c, 3);
        if (i == num){
            printf(" %d ", i);
        }
    }
    system("pause");
    return 0;
}

2)数位遍历(计算num部分)

for (i = 99 ; i <= 999 ; i++){
        num = 0;
        for ( int j = i ; j ; j /= 10 ){
            num += pow(j%10, 3);
        }
        if (i == num){
            printf(" %d ", i );
        }
    }


3 求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,
例如:2+22+222+2222+22222

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n=0 , i = 0;
    int add = 0, num = 0;
    //输入有误则重输,输入正确计算并跳出
    while (1){
        scanf("%d", &n);
        if (n<0 || n>9){
            printf("您的输入有误!\n");
        }
        else{
            for (i = 1; i <= 5; i++){
                num = num * 10 + n;
                add += num;
            }
            break;
        }
    }
    printf(" Sn = %d\n ", add );
    system("pause");
    return 0;

原文地址:https://blog.51cto.com/14606679/2455123

时间: 2024-10-29 02:14:29

【C初始之习题四】的相关文章

软件工程导论 习题四

1. 以一个简单的俄罗斯方块游戏系统规格说明为例,用自然语言描述如下: 游戏的每个状态对应一个游戏界面,开始状态下,但变量cd_start=1是进入正常游戏的状态,cd_start=2时 进入读取游戏状态,cd_start=3据储存结束后返回正常游戏状态,在正常游戏状态下,如果变量game_res=0,则游戏结束,进入游戏 是进入得分榜界面查看.在得分榜界面按任意键返回开始界面,在读取游戏界 面,当游戏数据读取完成后进入正常游戏状态,正常游戏状态下,同 时按下左键和右键进入储存游戏界面,数 用有

第二部分初始阶段 第四章 初始不是需求阶段

初始阶段是建立项目共同设想和基本范围的比较简短的起始步骤.为了在随后的细化阶段能够开始编程,它将包括对10%的用例进行分析,关键的非功能需求的分析,业务案例创建和开发环境的准备. 什么是初始阶段 大多数项目需要一个简短的起始步骤,在该步骤中要考虑以下几类问题 1.项目的设想和业务案例是什么 2.是否可行 3.购买还是开发 4.粗略估计一下成本:是一万到十万美元,还是上百万美元 5.项目应该继续下去还是停止 想要定义设想并大致得出所需的预算,就必须研究需求.但是,初始阶段的目标并不是定义所有需求,

软件工程P37习题四程序代码

//可移动的HelloWord语句  import java.awt.Color; import java.awt.Cursor; import java.awt.Font; import java.awt.Point; import java.awt.event.MouseEvent; import javax.swing.JLabel; import javax.swing.JWindow; import javax.swing.event.MouseInputListener; publi

习题四

某系统管理员需天做一定的重复工作,请按照下列要求,编制一个解决方案: (1)在下午 4 :50 删除/abc 目录下的全部子目录和全部文件: (2)从早 8:00-下午 6:00 小时读取/xyz 目录下 x1 文件中行第一个域的全 部数据加入到/backup    目录下的 bak01.txt 文件内: (3)逢星期一下午 5:50 将/data 目录下的所有目录和文件归档并压缩为文件: backup.tar.gz: (4)在下午 5:55 将 IDE 接口的 CD-ROM 卸载(假设:CD-

算法导论第四版学习——习题四8 Puzzle

题目正文: http://coursera.cs.princeton.edu/algs4/assignments/8puzzle.html 作业难点: 1.如何验证Puzzle是否可解?题目中有提示,如果相邻两个格子交换后得到的“Twin Puzzle”进行求解,如果Twin有解那么原始Puzzle就无解. 作业技巧: 1.checklist提到把Twin Puzzle和Puzzle放在一个Priority Queue中,其实就是在设计自己的Node数据结构的时候加一个boolean类型标识是否

习题四——数字智力题

1.找出规律并填写:16 96 12:10 () 15 分析:这个题网上搜了,但是感觉有一种还是比较靠谱的,就是16*12/2=96,所以10*15/2=75. 答案:75 2.   235 711 131 719 () 931 374 143 分析:题目中数字分开来看.2.3.5.7.11.13.17.19--都是是质数,并且括号中应填三位数,那么接下来的应该是23.29,所以答案是232. 3.找规律1,2, 4, 9, 19, 36, () 分析:将后一数减前一数得:2-1=1,4-2=2

【C初始之习题五】

1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定, 输入9,输出99口诀表,输入12,输出1212的乘法口诀表. #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> void Sum(int x){ int num = 0; for (int i = 1; i <= x; i++){ for (int j = 1; j <= i; j++){ num = i*j; prin

Java String类习题

package javafirst; public class StringTest02 { public static void main(String[] args){ //习题一 使用大小写的转换 String strA = "abcD"; System.out.println("转换成小写: " + strA.toLowerCase()); System.out.println("转换成小写: " + strA.toUpperCase()

Java数组课后习题

package javafirst; import java.util.Arrays; class Show{ public void showArray(int[] arr){ for(int i : arr){ System.out.print(i + " "); } System.out.println(); } } public class ArrayTest { public static void main(String[] args){ Show sh = new Sho