注册 登录
编程论坛 C语言论坛

求解c语言的两道题!

梦小123 发布于 2021-03-11 23:35, 1930 次点击
题目一:
输入正整数n(1~18),求所有两位数的两个数字和为n的数的和。
例如输入3,则满足累加条件的两位数有12,21,30;结果应该输出63
样例输入:3
样例输出:63
给的提示是:使用循环从10数到99,对于每个数,分别获得个位数字和十位数字,再做处理。

题目二:
给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。
输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。
在第一行输入测试用例的总组数
对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。
你可以认为32位整数足以保存结果。
样例输入:
2
1 3
2 5
样例输出:
4 28
20 152

6 回复
#2
apull2021-03-12 00:16
程序代码:

#include <stdio.h>

int main()
{
  int n,a,b,sum=0;
  scanf("%d",&n);
  
  for(int i=10;i<100;i++)
  {
      a=i/10;
      b=i-a*10;
      if(n==a+b)sum+=i;
  }
  printf("%d",sum);
  return 0;
}

#3
apull2021-03-12 00:50
手机码的,大概就这样子
程序代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int count;
    scanf("%d",&count);
   
    int *m,*n,*pm,*pn;
    int x,y;
   
    pm=m=(int *)malloc(count*sizeof(int));
    pn=n=(int *)malloc(count*sizeof(int));
    for(int i=0;i<count;i++)
    {
      scanf("%d%d",pm++,pn++);
    }
   
    pm=m;
    pn=n;
    for(int k=0;k<count;k++,pm++,pn++)
    {
        x=0,y=0;
        for(int j=*pm;j<=*pn;j++)
        {
          if(j%2==0)
          {
            x+=j*j;
          }
          else
            y+=j*j*j;
        }
        printf("%d %d\n",x,y);
    }
    free(m);
    free(n);
   
    return 0;

}

#4
梦小1232021-03-12 11:32
回复 3楼 apull
感谢!
#5
梦小1232021-03-12 11:34
回复 3楼 apull
你好,新手只学完了循环语句,还没有学带*的,请问这里的*变量可以替换成别的吗?
#6
apull2021-03-12 14:09
第二个里带*只是为了动态数组的功能,完全可以用普通数组m[],n[]替代。
#7
梦小1232021-03-14 08:25
回复 6楼 apull
谢谢
1