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; }
今天就先到这里
--------------------------------------------------------------------------------------------------------------------------------------
内容来自网络,如有侵权请联系我删除