第五周循环控制编程练习/课堂作业 素数和+念整数《 程序设计入门——C语言》第七期 浙江大学 翁恺
2019-03-25 00:31
232 查看
一、素数和(5分)
题目内容:
我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。
现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
输入格式:
两个整数,第一个表示n,第二个表示m。
输出格式:
一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。
输入样例:
2 4
输出样例:
15
时间限制:500ms内存限制:32000kb
[code]#include<iostream> using namespace std; int main() { int n, m, sum=0; //sum记录第n个素数到第m个素数之间所有的素数的和 int prime=2; // 素数 int count = 0; //记录素数个数 int isprime; //记录是否为素数 scanf("%d %d", &n, &m); //0<n<=m<=200 while (count < m) { isprime = 1; //素数标志位初始化 //判断prime是否为素数 for (int i = 2; i < prime; i++) { if (prime%i == 0) { isprime = 0; break; } } if (isprime == 1) //是否为素数 { count++; // 这是第几个素数 if (count >= n&&count <= m) //此素数在(n,m)范围内则加入 { sum += prime; } } prime++; } printf("%d\n", sum); system("pause"); return 0; }
另外:输出整数区间(n,m)之间的所有素数(老师的方法)
[code]int isPrime(int i) // 判断输入整数i是否为素数,返回素数标志位 { int ret = 1; //记录i是否为素数 int k; //判断是否为素数 for (k = 2; k <= i - 1; k++) { if (i%k == 0) { ret = 0; break; } } return ret; //返回是否为素数标志位 } int main() { int n, m, sum = 0; //sum记录第n个素数到第m个素数之间所有的素数的和 int count = 0; //记录素数个数 int i; scanf("%d %d", &n, &m); //0<n<=m<=200 int n2 = n; if (n == 1) n = 2; //1不是素数 for (i = n; i <= m; i++) { // 遍历n到m间的数,判断是否为素数 if (isPrime(i)) { //调用判断是否为素数函数 sum += i; count++; } } printf("%d到%d之间一共有%d个素数,和为%d。\n",n2,m,count, sum); system("pause"); return 0; }
二、念整数(5分)
题目内容:
你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。
如输入1234,则输出:
yi er san si
注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,如-2341输出为:
fu er san si yi
输入格式:
一个整数,范围是[-100000,100000]。
输出格式:
表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。
输入样例:
-30
输出样例:
fu san ling
时间限制:500ms内存限制:32000kb
[code]#include<iostream> using namespace std; int main() { int x; scanf("%d", &x); //如果x为负数先输出“fu”,并将x转化为正数 if (x < 0) { printf("fu "); x = -x; } int x2 = x; //定义x2暂存x的原值 int count = 1; //定义一个count初始化为1,用于记录x求对应最高位所需要除以的数, //比如x=123,则count=100,123/100=1(最高位) //接下来逐次对x除以10求得count值 while (x>9) { count *= 10; x /= 10; } //对原值x2除以count求得最高位,循环实现取得x2的每一位整数并输出相应拼音 do { int d= x2 /count; //判断当前位并输出相应拼音 switch (d) { case 0: printf("ling"); break; case 1: printf("yi"); break; case 2: printf("er"); break; case 3: printf("san"); break; case 4: printf("si"); break; case 5: printf("wu"); break; case 6: printf("liu"); break; case 7: printf("qi"); break; case 8: printf("ba"); break; case 9: printf("jiu"); break; } //控制空格是否输出 if (count > 1) { printf(" "); } x2 = x2 % count; //把x2的最高位去除 count /= 10; } while (count>0); printf("\n"); system("pause"); return 0; }
相关文章推荐
- 第七周判断与循环编程练习/课堂作业 多项式加法+鞍点《程序设计入门——C语言》第七期 浙江大学 翁恺
- 第八周指针与字符串编程练习/课堂作业 单词长度+GPS数据处理《程序设计入门——C语言》第七期 浙江大学 翁恺
- 第七周7.2搜索 课堂学习记录 搜索例子+选择排序+二分搜索《程序设计入门——C语言》第七期 浙江大学 翁恺
- 程序设计入门—Java语言 . 翁恺-第四周编程作业-2.念整数
- Oracle:PL/SQL--流程控制——作业练习:向表中循环插入ID编号
- C primer plus C 第六章控制语句:循环 编程练习个人练习
- 第五周作业总结(内含用Junit测试ArrayStack和LinkedStack课堂练习报告)
- 第4章_循环_编程练习4.16求整数的因子
- 程序设计入门—Java语言 . 翁恺-第四周编程作业-1.素数和
- 《程序设计入门—Java语言.翁恺》第五周编程作业(2)-井字棋
- C Primer Plus 第6章 C控制语句:循环 编程练习
- 课堂练习----一个整数数组中最大子数组的和(1)
- 软件工程课堂练习:返回一个一维整数数组中最大子数组的和
- 课堂练习----一个整数数组中最大子数组的和(1)
- 3月17号周二课堂练习:结对开发----返回一个整数数组中最大子数组的和一
- CCNA课堂练习三:标准访问控制列表和扩展访问控制列表的区别 推荐
- 作业 1 熟悉C语言编程环境、练习代码录入
- 课堂练习:给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数。
- 第十一章数据操作与事务控制课后练习和作业
- 编程控制8位LED循环点亮