划水。。。

13:人民币支付

总时间限制: 1000ms  内存限制:65536kB

描述

从键盘输入一指定金额(以元为单位,如345),然后输出支付该金额的各种面额的人民币数量,显示100元,50元,20元,10元,5元,1元各多少张,要求尽量使用大面额的钞票。

输入
一个小于1000的正整数。
输出
输出分行,每行显示一个整数,从上到下分别表示100元,50元,20元,10元,5元,1元人民币的张数
样例输入
735
样例输出
7
0
1
1
1
0
#include<cstdio>
using namespace std;
int main()
{
    int n;
    scanf("%d", &n);
    printf("%d
%d
%d
%d
%d
%d", n/100, n%100/50, n%50/20, n%50%20/10, n%10/5, n%5);
    return 0;
}

没什么可说的。。。暴力出奇迹,骗分过样例,orz。

15:阶乘和

总时间限制: 1000ms 内存限制: 65536kB
描述

用高精度计算出S=1!+2!+3!+…+n!(n≤50)

其中“!”表示阶乘,例如:5!=5*4*3*2*1。

输入正整数N,输出计算结果S。

输入
一个正整数N。
输出
计算结果S。
样例输入
5
样例输出
153
#include<bits/stdc++.h>
using namespace std;
int a[10001]={1}, ans[100001]={0};
char n[1001];
int
en[1001], ans_=1, la=1, x; int main() { int n; cin>>n; int x = 0; for(int i=1; i<=n; i++) { memset(a, 0, sizeof(a)); a[0] = 1; for(int k=1; k<=i; k++) { for(int j=0; j<la; j++) { a[j] = a[j]*k+x; x = a[j]/10; if(x>0 && j==la-1) la++; a[j] = a[j]%10; } } int l = 0; x = 0; while(l<=la || l<=ans_) { ans[l] = ans[l]+a[l]+x; x = ans[l]/10; if(x>0) ans_++; ans[l] = ans[l]%10; l++; } } int flag = 0; for(int i=ans_; i>=0; i--) { if(ans[i]==0 && flag==0) continue; else flag = 1; cout<<ans[i]; } return 0; }

没看到题目中的高精度,但正常写的话。。。也有6分/手动滑稽/

原文地址:https://www.cnblogs.com/orange-233/p/11938155.html