1. 求a+aa+aaa+aa…a
1.1.
题目要求
输入2个正整数a和n, 求a+aa+aaa+aa…a(n个a)之和。
要求定义并调用函数fn(a,n),它的功能是返回aa…a(n个a)。例如,fn(3,2)的返回值是33。
1.2.
测试结果(输入结束回车符用<回车>表示) (1)输入:2 3<回车>
输出: 246 (2+22+222) (2)输入:8 5<回车>
输出:98760 (8+88+888+8888+88888)
#include
int i, n; long a, sn;
long fn(long a, int n);
scanf(\ sn=0; for(i=1;i<=n;i++) sn=sn+fn(a,i);
/*注意此处不能写成fn(a,n)*/ printf(\ }
long fn(long a, int n) {int i; long s=0; for(i=1;i<=n;i++) s=s*10+a; return s; }
2. 统计一个整数中数字的个数
2.1.
题目要求
读入1 个整数,统计并输出该数中2的个数。
要求定义并调用函数countdigit(number,digit),它的功能是统计整数number中数字digit的个数。例如,countdigit(10090,0)的返回值是3。
2.2.
测试结果(输入结束回车符用<回车>表示) (1)输入:-21902<回车>
输出: count=2 (-21902中有2个2)
(2)输入:2<回车>
输出:count=1 (有1个2)
(3)输入:345543<回车>
输出:count=0 (345543中没有2)
#include \int main( ) {
int count; long in;
int countdigit(long number, int digit);
scanf(\if (in<0) in=-in;
/*负数转换成正数,因为负数得到的余数也是负数*/ count=countdigit(in,2); /*---------*/
printf(\ }
/*---------*/
int countdigit(long number, int digit) {int i,cou=0;
while(number!=0) {i=number; if (digit==i) cou++; number=number/10; }
return cou; }
3. 判断素数
3.1.
题目要求
输入一个正整数n,如果它是素数,输出\,否则,输出\(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。
要求定义并调用函数prime(m)判断m是否为素数。
3.2.
测试结果(输入结束回车符用<回车>表示) (1)输入:1 <回车>
输出: NO (1不是素数) (2)输入:2 <回车>
输出:YES (2是素数) (3)输入:9 <回车> 输出:NO (9不是素数)
#include
int flag,n;
int prime(int m);
scanf(\ flag=prime(n); /*---------*/
if(flag) printf(\ else printf(\ }
/*---------*/
int prime(int m) {int i;
if (m==1) return 0; for(i=2;i<=m/2;i++) if (m%i==0) return 0; return 1; }
4. 统计素数并求和
4.1.
题目要求
输入2 个正整数m和n(1<=m,n<=500),统计并输出m 和n之间的素数的个数以及这些素数的和(素数就是只能被1和自身整除的正整数,1不是素数,2是素数)。 要求定义并调用函数prime(m)判断m是否为素数。
4.2.
测试结果(输入结束回车符用<回车>表示) (1)输入: 1 10 <回车>(m=1, n=10)
输出:count=4, sum=17 (1到10之间有4个素数:2,3,5,7) (2)输入:20 35 <回车> (m=20, n=35)
输出:count=3, sum=83 (20到35之间有3个素数:23, 29, 31) (3)输入:14 16 <回车>(m=14, n=16)
输出:count=0, sum=0 (14到16之间没有素数)
#include \#include \int main( ) {