1. 不喜欢带钱的小C
小C不喜欢带钱,有一次竟被他碰上了一家不能使用移动支付(也不能找钱)的神秘商店。请问小C至少准备多少张RMB才能恰好支付n元。RMB的面额有100元,50元,20元,10元,5元,1元。
输入格式:
输入一个整数n
输出格式:
最少带几张。
样例输入1:
50
样例输出1:
1
约定:
1<=n<=100
以下程序实现了这一功能,请你填补空白处内容:
```c++
#include <iostream> using namespace std; int solve(int tar, int * meta, int metan, int * seed = NULL, int seedn = 0) { if (tar == 0) { return seedn; } int min = -1; int m; int * seed1 = new int[seedn + 1]; if (seed) memcpy(seed1, seed, sizeof(int) * seedn); for (int i = 0; i < metan; i++) { if (meta[i] <= tar) { seed1[seedn] = meta[i]; _____________________; if (m != -1 && (min == -1 || min > m)) min = m; break; } } delete[] seed1; return min; } int main() { int arr[] = { 100, 50, 20, 10, 5, 1 }; int n = 6; int total; cin >> total; int result = solve(total, arr, n); cout << result << endl; return 0; } ```
出处:
https://edu.csdn.net/practice/26559384
代码:
#include <iostream> using namespace std; int solve(int tar, int * meta, int metan, int * seed = NULL, int seedn = 0) { if (tar == 0) { return seedn; } int min = -1; int m; int * seed1 = new int[seedn + 1]; if (seed) memcpy(seed1, seed, sizeof(int) * seedn); for (int i = 0; i < metan; i++) { if (meta[i] <= tar) { seed1[seedn] = meta[i]; m = solve(tar - meta[i], meta, metan, seed1, seedn + 1); if (m != -1 && (min == -1 || min > m)) min = m; break; } } delete[] seed1; return min; } int main() { int arr[] = { 100, 50, 20, 10, 5, 1 }; int n = 6; int total; cin >> total; int result = solve(total, arr, n); cout << result << endl; return 0; }
输出:
略
2. 数组排序
定义一个包含5个整型元素(1, 5, 3, 92, 6)的数组,将数组元素按照由 小到大的顺序输出
出处:
https://edu.csdn.net/practice/26559385
代码:
#include <stdio.h> #define N (int)5 int main() { int a[N] = {1,5,3,92,6}; int tmp; for (int i = 0; i < N-1; i++) { for (int j = 0;j < N-1-i;j++) { if (a[j] > a[j+1]) { tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } } for (int i = 0; i < N; i++) { printf("%d ",a[i]); } return 0; }
输出:
略
3. 超级素数
一个n位超级素数是指一个n位正整数,它的前1位,前2位,......,前n位均为素数,例如,733是个3位超级素数,因为7,73,733均为素数。输出全部的3位数超级素数。 输入 输出 全部的3位数超级素数,每行一个数
出处:
https://edu.csdn.net/practice/26559386
代码:
#include <stdio.h> int isprime(int x) { if (x == 0 || x == 1) return 0; for (int i = 2; i <= x / 2; i++) if (!(x % i)) return 0; return 1; } int isallprime(int x) { do { if (!isprime(x)) return 0; x /= 10; } while (x > 0); return 1; } int main() { for (int i = 111; i <= 1000; i++) if (isallprime(i)) printf("%d\n", i); }
输出:
233
239
293
311
313
317
373
379
593
599
719
733
739
797