首页 > 其他分享 >打卡第五条

打卡第五条

时间:2023-04-21 21:16:20浏览次数:40  
标签:输出 每行 数字 int 圆周率 第五条 打卡 逐行

一、问题描述

设计一座圆周率山

已知圆周率为:3.

1415926535 8979323846 2643383279 5028841971 6939937510

5820974944 5923078164 0628620899 8628034825 3421170679

8214808651 3282306647 0938446095 5058223172 5359408128

4811174502 8410270193 8521105559 6446229489 5493038196

二、设计思路:(如果写的文字无法编程实现,则需要进一步细化,再细分步 骤)

  1.  接收输入的山的高度。

  2.  根据圆周率的值,定义一个字符串变量存储圆周率的值。

  3.  定义一个变量表示每行数字的宽度,初始值为1。

  4.  使用两个嵌套循环逐行输出圆周率数字,外层循环为山的高度,即要输出的行数。内层循环为每行的数字个数。 

  5.  在每行输出前,添加合适数量的空格,使之符合 "pi mountain" 的形状和对称性。

  6.  每次行的宽度增加2,以便能够逐行输出圆周率数字。

  7.  最终输出结果,每行数字右侧没有空格。

 

四、代码实现 

#include<bits/stdc++.h>
using namespace std;
#define PI "314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196"

int main()
{
int n,x,i,j;
cin>>n;
string s(PI);
int flag=0;
for(i=0;i<n;i++){
string s1=s.substr(flag,i*2+1);
cout<< setw((n*2-1)/2+1+i)<<s1<<endl;
flag+=i*2+1;
}
return 0;
}

 

 

标签:输出,每行,数字,int,圆周率,第五条,打卡,逐行
From: https://www.cnblogs.com/genyuan0/p/17341792.html

相关文章

  • 打卡8
    1、冒泡排序法#include<stdio.h>#defineN10intmain(){inta[N],temp;printf("请为数组元素赋初值:\n");for(inti=0;i<N;i++)scanf("%d",&a[i]);for(inti=0;i<N;i++){for(intj=0;j<N;j++){if(a[j]>a[j+1]){temp=a[j+1];a[j+1]=a[j];a[j]=t......
  • 建民打卡日记4.21
    一、问题描述一对兔子从出生后三个月起每个月生一对兔子,小兔子三个月后每月生一对兔子,依次类推,假设所有兔子都不死,三十个月内每月兔子总量?二、设计流程1.设置前两个月的初值a,b2.将前两个月的总值赋给下个月c,并依次赋给a,b下个月的值,实现迭代3.输出c三、流程图设计四、代码......
  • 4.21打卡
     2.设计思路①依次列举出所有0~9的两位相同数字②在第一步的前提下依次列举出0~9的两位相同数字③将第一第二步中的四个数字组成的数进行开根,判断结果是否为整数后输出结果 3.程序流程图 4、代码实现#include<bits/stdc++.h>usingnamespacestd;intmain(){......
  • 编程打卡:C语言趣味编程习题做
    编程打卡:C语言趣味编程习题做完数问题描述完数是因子相加等于它本身的数字,求一个范围内的完数。设计思路遍历这个范围内的数字,求它的因子,然后判断是否为完数即可。流程图graphA[开始]-->B[inputN,i=2]-->C{i<=N}--Yes-->D[j=1,sum=0]-->E{j<=i/2}--Yes-->F{i%j==0}--Yes--......
  • 4.20打卡
     #include<bits/stdc++.h>usingnamespacestd;intmain(){inti;doubleb=0.0,a=1000;for(i<=0;i<5;i++){b=(b+a)/(1+12*0.063);}printf("%0.2lf\n",b);return0;} ......
  • c++训练打卡(13)
    分糖果问题:10个小孩围成一圈分糖果,老师分给第1个小孩10块,第2个小孩2块,第3个小孩8块,第4个小孩22块,第5个小孩16块,第6个小孩4块,第7个小孩10块,第8个小孩6块,第9个小孩14块,第10个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样......
  • 打卡第九天
    输入一个整数,求出他的所有因子。一、1.定义变量,用于保存整数值。2、利用穷举法,找出1到整数值所有能够整除的数3、循环次数已知,利用for循环。二、三、#include<iostream>usingnamespacestd;intmain(){ intn,i; cout<<"输入整数值:"; cin>>n; for(i=1;i<=n;i++) { if(n......
  • leetcode_打卡10
    leetcode_打卡10题目:283.移动零思路:双指针,数值互相交换,不是复制覆盖代码:classSolution{publicvoidmoveZeroes(int[]nums){intn=nums.length;intl=0,r=0;while(r<n){if(nums[r]!=0){swap(nums,l,r);......
  • leetcode_打卡09
    leetcode_打卡09题目:443.压缩字符串思路:双指针代码:classSolution{publicintcompress(char[]chars){intn=chars.length;intwrite=0,left=0;for(intread=0;read<n;read++){if(read==n-1||chars[r......
  • 周五打卡
    1.题目描述定义一个长度为n(1<=n<=100)的整型数组a,输入n个整数。编写程序,将该数组中所有奇数放在偶数前面2.设计思路:输入整型数组a和数组长度n。定义两个指针i和j,分别指向数组头尾。当i<j时,向后移动i,直到a[i]为偶数;向前移动j,直到a[j]为奇数;交换a[i]和a[j]的值。重复执行第3步......