Python123:使用函数求特殊a串数列和、使用函数输出指定范围(C语言)

文章目录

      • 1、使用函数求特殊a串数列和
      • 2、使用函数输出指定范围内的完数

1、使用函数求特殊a串数列和

题目: 给定两个均不超过9的正整数a和n,要求编写函数求a+aa+aaa++⋯+aa⋯a(n个a)之和。

函数定义接口:

	int fn( int a, int n );
	int SumA( int a, int n );

其中函数fn须返回的是n个a组成的数字;SumA返回要求的和。

裁判测试程序样例:

#include 

int fn( int a, int n );
int SumA( int a, int n );
	
int main()
{
    int a, n;

    scanf("%d %d", &a, &n);
    printf("fn(%d, %d) = %d\n", a, n, fn(a,n));		
    printf("s = %d\n", SumA(a,n));	
	
    return 
0
;
}

/* 你的代码将被嵌在这里,与上述测试代码一起提交 */

输入样例:

2 3

输出样例:

fn(2, 3) = 222
s = 246

代码1:

#include 
#include
int fn( int a, int n )
{
	int i,b=0;
	for(i=0;i<n;i++){
		b=b+a*pow(10,i);
	}
	return b;
}
int SumA( int a, int n )
{
	int i=1,sum=0;
	while(i<=n){
		sum=sum+fn(a,i);
		i++;
	}
	return sum;
}
int main()
{
    int a, n;
    scanf("%d %d", &a, &n);
    printf("fn(%d, %d) = %d\n", a, n, fn(a,n));		
    printf("s = %d\n", SumA(a,n));	
    return 0;
}

 
代码2:


#include

int fn( int a, int n );
int SumA( int a, int n );
	
int main()
{
    int a, n;

    scanf("%d %d", &a, &n);
    printf("fn(%d, %d) = %d\n", a, n, fn(a,n));		
    printf("s = %d\n", SumA(a,n));	
	
    return 0;
}

int fn( int a, int n )
{
    int i,sum=0;
    for(i=1;i<=n;i++)
    {
        sum=sum*10+a;
    }
    return sum;
}
int SumA( int a, int n )
{
    int i,sum=0;
    for(i=1;i<=n;i++)
    {
        sum=sum+fn(a,i);
    }
    return sum;
}

 
 
 

2、使用函数输出指定范围内的完数

题目: 本题要求实现一个计算整数因子和的简单函数,并利用其实现另一个函数,输出两正整数m和n(0

函数接口定义:

int factorsum( int number );
void PrintPN( int m, int n );

其中函数factorsum须返回int number的因子和;函数PrintPN要逐行输出给定范围[m, n]内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + … + 因子k”,其中完数和因子均按递增顺序给出。如果给定区间内没有完数,则输出一行“No perfect number”。

裁判测试程序样例:

#include 

int factorsum( int number );
void PrintPN( int m, int n );
	
int main()
{
    int i, m, n;

    scanf("%d %d", &m, &n);
    if ( factorsum(m) == m ) printf("%d is a perfect number\n", m);
    if ( factorsum(n) == n ) printf("%d is a perfect number\n", n);
    PrintPN(m, n);

    return 
0
;
}

/* 你的代码将被嵌在这里,与上述测试代码一起提交 */

输入样例1:

1 30

输出样例1:

1 is a perfect number
1 = 1
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14

输入样例2:

7 25

输出样例2:

No perfect number

代码1:

#include 
int factorsum(int number);
void PrintPN(int m, int n);
int main()
{
    int i, m, n;
    scanf("%d %d", &m, &n);
    if ( factorsum(m) == m ) printf("%d is a perfect number\n", m);
    if ( factorsum(n) == n ) printf("%d is a perfect number\n", n);
    PrintPN(m, n);
    return 0;
}
int factorsum(int number)
{
    int i,sum=1;
    for(i=2;i<number;i++){
        if(number%i==0)sum=sum+i;}
        return sum; 
}
void PrintPN(int m, int n)
{
	int i,a,b=0;
	for(a=m;a<=n;a++){
		if(factorsum(a)==a){
			printf("%d = 1",a);
			for(i=2;i<a;i++){
				if(a%i==0){
				printf(" + %d",i);
				}	
			}
			printf("\n");
			b=1;
		}
	}
	if(b==0){
		printf("No perfect number\n");
	}
}

 
代码2:


#include

int factorsum( int number );
void PrintPN( int m, int n );
	
int main()
{
    int i, m, n;

    scanf("%d %d", &m, &n);
    if ( factorsum(m) == m ) printf("%d is a perfect number\n", m);
    if ( factorsum(n) == n ) printf("%d is a perfect number\n", n);
    PrintPN(m, n);

    return 0;
}
int factorsum( int number )
{
    int sum=0,i;
	if (number==1)
	{
		sum=1;
	}
	else
	{
		for(i=1;i<=number/2;i++)
		{
			if(number%i==0)
			{
				sum+=i;
			}
		}
	}
    
    return sum;
}
void PrintPN( int m, int n )
{
    int i,k,count=0;
	if (factorsum(m)==m)
	{
		count++;
	}
    if (factorsum(n)==n)
	{
		count++;
	}
    for(i=m;i<=n;i++)
    {
		if (i==1)
		{
			printf("1 = 1\n");
		}
		else
		{
        if(factorsum(i)==i)
        {
            count++;
            printf("%d = ",i);
            for(k=1;k<=i/2;k++)
            {
                if(i%k==0)
                {
                    if(k==1)
                    {
                        printf("%d",k)  ;  
                    }
                    else
                    {
                        printf(" + %d",k);
                    }
                    
                }
            }
            printf("\n");
        }
		}
    }
    if(count==0)
    {
        printf("No perfect number\n");
    }
}

你可能感兴趣的:(c语言,算法,数据结构)