第一部分 C++语言
第四章 循环结构的程序设计
第二节 while语句
1085 球弹跳高度的计算
#include <cstdio>
using namespace std;
int main(){
double h;
scanf("%lf", &h);
double ttl = h;
int n = 1;
while(n < 10){
n++;
h /= 2;
ttl += h*2;
}
printf("%g\n%g\n", ttl, h/2);
return 0;
}
1086 角谷猜想
#include <cstdio>
using namespace std;
int main() {
int n;
scanf("%d", &n);
while (n != 1) {
if ( n%2 == 0) {
printf("%d/2=%d\n", n, n/2);
n /= 2;
}
else{
printf("%d*3+1=%d\n", n, n*3+1);
n = n * 3 + 1;
}
}
printf("End\n");
return 0;
}
1087 级数求和
#include <cstdio>
using namespace std;
int main() {
int k, n = 0;
double sum = 0;
scanf("%d", &k);
while (sum <= k) {
n++;
sum += 1.0 / n;
}
printf("%d\n", n);
return 0;
}
1088 分离整数的各个数
#include <cstdio>
using namespace std;
int main() {
int n;
scanf("%d", &n);
while (n) {
printf("%d ", n%10);
n /= 10;
}
return 0;
}
1089 数字反转
#include <cstdio>
using namespace std;
int main() {
int n;
scanf("%d", &n);
if (n < 0) {
printf("-");
n *= -1;
}
while (n % 10 == 0) {
n /= 10;
}
while (n) {
printf("%d", n%10);
n /= 10;
}
return 0;
}
1090 含k个3的数
#include <cstdio>
using namespace std;
int main() {
int m, k, cnt = 0;
scanf("%d%d", &m, &k);
int t = m;
while (t) {
if (t%10 == 3) cnt++;
t /= 10;
}
if (cnt == k && m%19 == 0) {
printf("YES\n");
}
else {
printf("NO\n");
}
return 0;
}
第四节 循环嵌套
1091 求阶乘的和
#include <cstdio>
using namespace std;
int main() {
int n, t = 1, s = 0;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
t = 1;
for (int j = 1; j <= i; j++) {
t *= j;
}
s += t;
}
printf("%d\n", s);
return 0;
}
1092 求出e的值
#include <cstdio>
using namespace std;
int main() {
int n;
long long t = 1;
double s = 1;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
t = 1;
for (int j = 1; j <= i; j++) {
t *= j;
}
s += 1.0 / t;
}
printf("%.10lf\n", s);
return 0;
}
1093 计算多项式的值
#include <cstdio>
using namespace std;
int main() {
int n;
double x = 1, t = 1, s = 1;
scanf("%lf%d", &x, &n);
for (int i = 1; i <= n; i++) {
t = 1;
for (int j = 1; j <= i; j++) {
t *= x;
}
s += t;
}
printf("%.2lf\n", s);
return 0;
}
1094 与7无关的数
#include <cstdio>
using namespace std;
int main() {
int n, sum = 0;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
if (i%10 != 7 && i/10 != 7 && i%7 !=0) {
sum += i * i;
}
}
printf("%d\n", sum);
return 0;
}
1095 数1的个数
#include <cstdio>
using namespace std;
int main() {
int n, cnt = 0;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
int t = i;
while (t) {
if (t%10 == 1) cnt++;
t /= 10;
}
}
printf("%d\n", cnt);
return 0;
}
1096 数字统计
#include <cstdio>
using namespace std;
int main() {
int l, r, cnt = 0;
scanf("%d%d", &l, &r);
for (int i = l; i <= r; i++) {
int t = i;
while (t) {
if (t%10 == 2) cnt++;
t /= 10;
}
}
printf("%d\n", cnt);
return 0;
}
1097 画矩形
#include <cstdio>
using namespace std;
int main() {
int h, w, flag;
char ch;
scanf("%d %d %c %d", &h, &w, &ch, &flag);
for (int j = 0; j < w; j++) printf("%c", ch);
printf("\n");
for (int i = 1; i < h - 1; i++) {
printf("%c", ch);
for (int j = 1; j < w - 1; j++) {
if (flag) printf("%c", ch);
else printf(" ");
}
printf("%c\n", ch);
}
for (int j = 0; j < w; j++) printf("%c", ch);
return 0;
}
1098 质因数分解
#include <cstdio>
using namespace std;
int main() {
int n;
scanf("%d", &n);
for (int i = 2; i <= n/i; i++) {
if (n % i == 0) {
printf("%d", n / i);
break;
}
}
return 0;
}
1099 第n小的质数
#include <cstdio>
using namespace std;
int main() {
int n;
scanf("%d", &n);
int i, j;
for (i = 2, j = 0; j < n; i++) {
bool flag = true;
for (int k = 2; k <= i/k; k++) {
if (i%k == 0) {
flag = false;
break;
}
}
if (flag) j++;
}
printf("%d", i - 1);
return 0;
}
1100 金币
#include <cstdio>
using namespace std;
int main() {
int n, sum=0, day=0;
scanf("%d", &n);
for (int i = 1; ; i++) {
for (int j = 1; j <= i; j++) {
day++;
if (day > n) {
printf("%d\n", sum);
return 0;
}
sum += i;
}
}
return 0;
}
1101 不定方程求解
#include <cstdio>
using namespace std;
int main() {
int a, b, c, cnt = 0;
scanf("%d%d%d", &a, &b, &c);
for (int x = 0; x <= c; x++) {
for (int y = 0; y <= c; y++) {
if (a*x + b*y == c) cnt++;
}
}
printf("%d\n", cnt);
return 0;
}
如果您的孩子四年级及以上,对计算机编程感兴趣,且文化课学有余力,欢迎联系客服(微信号:xiaolan7321),参加信息学的学习。我们是专业的信息学竞赛教练,采用线上小班授课的方式,目标是帮助热爱编程的中小学生,在国内外信息学竞赛中取得优秀成绩。
教学特点:
-
线上小班授课,打好代码基础。避免大班课堂上学生要么“跟不上”,要么“吃不饱”的问题。
-
教学经验丰富,熟悉学生的知识结构与学习能力,合理安排进度。
-
以赛代练,通过考级与比赛,不断提高学生能力。