5.6-5.12 第11周编程
- 1001 上下金字塔
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;//n = 5
for (int i = 1;i < n;i++)//前4行
{
for (int j = n - i;j >= 1;j--) cout << " ";//每行输出对应数量的空格
for (int k = 1;k <= 2 * i - 1;k++) cout << "*";//每行输出对应数量的 *
cout << endl;//星号输完之后换行
}
for (int i = 1;i <= 2 * n - 1;i++) cout << "*";//至此,上半个三角形输出完毕
cout << endl;
for (int i = n - 1;i >= 1;i--)//后4行
{
for (int j = n - i;j >= 1;j--) cout << " ";//每行输出对应的空格
for (int k = 1;k <= 2 * i - 1;k++) cout << "*";//每行输出对应数量的 *
cout << endl;
}//至此,下半个三角形输出完毕
return 0;
}
1002-数字三角形
#include<stdio.h>
int main(){
int n,i,j;
int m=1;
scanf("%d",&n);
for ( i=0;i<n;i++ ){ //行
for ( j=0;j<i+1;j++ ){ //每行的数
printf(" %d",m);
m+=1; //逐次递增
}
printf("\n"); //换行
}
}
1003-字符金字塔
#include<stdio.h>
int main(){
char a;
int flag;
int i,j;
scanf("%c",&a);
int as=a-64;
for ( i=0;i<as;i++){
char b='A';
flag=0;
for (j=0;j<as-1-i;j++){
printf(" ");
}
while (flag<=i){
printf("%c",b);
flag+=1;
b+=1;
}
flag-=1;
b-=1;
if (flag!=0){
while (flag){
b-=1;
printf("%c",b);
flag--;
}
}
printf("\n");
}
return 0;
}
1005-箭形图案
#include<stdio.h>
int main(){
int a;
while (scanf("%d",&a)!=EOF)
{
for (int i=0;i<=a;i++){
for (int j=0;j<2*a-2*i;j++){
printf(" ");
}
for (int k=0;k<i+1;k++){
printf("*");
}
printf("\n");
}
for (int i=0;i<a;i++){
for (int j=0;j<2*(i+1);j++){
printf(" ");
}
for (int k=0;k<a-i;k++){
printf("*");
}
printf("\n");
}
}
return 0;
}
1006 牛牛学数列
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int ans = 0;
for (int i = 1;i <= n;i++)
{
if (i % 2) ans += i;//i是奇数,相加
else ans -= i;//i是偶数,相减
}
cout << ans;
return 0;
}
1007 牛牛学数列2
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
double ans = 0;
for (int i = 1;i <= n;i++) ans += 1.0 / i;
printf("%.6f",ans);
return 0;
}
1008 牛牛学数列3
#include <iostream>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
double ans = 0;
for (int i = 1;i <= n;i++)
{
if (i % 2) ans += 1.0 / i;
else ans -= 1.0 / i;
}
printf("%.3f",ans);
return 0;
}
1009 牛牛学数列4
#include <iostream>
using namespace std;
int res[1010];//打表
int main()
{
int n;
cin >> n;
int ans = 0;
for (int i = 1;i <= n;i++)
for (int j = 1;j <= i;j++)
res[i] += j;
for (int i = 1;i <= n;i++) ans += res[i];
cout << ans;
return 0;
}
1010 牛牛学数列5
#include <iostream>
using namespace std;
int fibonacci(int n)
{
if (n == 1 || n == 2) return 1;
else return fibonacci(n - 1) + fibonacci(n - 2);
}
int main()
{
int n;
cin >> n;
cout << fibonacci(n);
return 0;
}
1011 牛牛学数列6
#include <iostream>
using namespace std;
int ans[25];//打表
int main()
{
int n;
cin >> n;
ans[1] = 0;
ans[2] = 1;
ans[3] = 1;
for (int i = 4;i <= n;i++)
ans[i] = ans[i - 3] + 2 * ans[i - 2] + ans[i - 1];
cout << ans[n];
return 0;
}
1012 A+B
#include <iostream>
using namespace std;
int main()
{
int a,b;
while (cin >> a >> b) cout << a + b << endl;
return 0;
}
1013-多组输入a+b
#include<stdio.h>
int main(){
int a,b;
while (~scanf("%d %d",&a,&b))
printf("%d\n",a+b);
return 0;
}
1014 多组输入a+b II
#include <iostream>
using namespace std;
int main()
{
int n;
int a,b;
cin >> n;
while (n--)
{
cin >> a >> b;
cout << a + b << endl;
}
return 0;
}
1015 多组数据a+b III
#include <iostream>
using namespace std;
int main()
{
int a,b;
while (cin >> a >> b,a,b) cout << a + b << endl;
return 0;
}
1016 标题统计
#include <iostream>
using namespace std;
int main()
{
char c;
int cnt = 0;
while (scanf("%c",&c) != EOF)
if (c != ' ' && c != '\n')
cnt ++;
cout << cnt;
return 0;
}
1017 栗酱数数
#include <iostream>
using namespace std;
bool is_include_four(int n)
{
int flag = 0;
while (n > 0)
{
//取出各个位置上的数字判断是否存在4
int ans = n % 10;
n /= 10;
if (ans == 4) flag = 1;
}
return flag;
}
int main()
{
int n;
cin >> n;
for (int i = 1;i <= n;i++)
{
//不是4的倍数且不包含数字4,则输出
if (i % 4 != 0 && !is_include_four(i)) cout << i << endl;
else continue;
}
return 0;
}
1023 绩点
#include <iostream>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
double gpa,ans = 0;
int sc,sum = 0;
while (n--)
{
scanf("%lf %d",&gpa,&sc);
ans += gpa * sc;
sum += sc;
}
printf("%.1f\n",ans / sum);
return 0;
}
1024 买铅笔
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
const int N = 1010;
struct Node//Node表示结构体
{
double cnt;//cnt表示包装内铅笔的数量
int price;//price表示这种包装的价格
int cost;//表示使用这种包装所需要的花费
}node[N];//node表示结构体数组
bool cmp(Node a,Node b)
{
return a.cost <= b.cost;//按照cost从小到大排序
}
int main()
{
int n;
cin >> n;
for (int i = 0;i < 3;i++)
{
cin >> node[i].cnt >> node[i].price;
node[i].cost = ceil(1.0 * n / node[i].cnt) * node[i].price;//向上取整得到花费(保证小数才可以向上取整)
}
sort(node,node + 3,cmp);//排序
cout << node[0].cost;
return 0;
}
1025 整数个数
#include <iostream>
using namespace std;
const int N = 55;
int a[N];
int main()
{
int k,x;
cin >> k;
while (k--)
{
cin >> x;
a[x]++;
}
cout << a[1] << " " << a[5] << " " << a[10];
return 0;
}
1049 3和5和7
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 1;i <= n;i++)
if (i % 3 == 2 && i % 5 == 3 && i % 7 == 2)
cout << i << endl;
return 0;
}
1051 数位之和
#include <iostream>
using namespace std;;
int main()
{
int n;
cin >> n;
int sum = 0;
while (n > 0)
{
sum += (n % 10);//每次取出最后一位
n /= 10;
}
cout << sum;
return 0;
}
今天就先到这里
--------------------------------------------------------------------------------------------------------------------------------------
内容来自网络,如有侵权请联系我删除
查看8道真题和解析