C语言程序设计:定义一个函数求任意给定整数n的个位数字和十位数字和的完全平方,如果输入数字0<n<10,则在数字前加0,然后进行计算并输出计算结果。例如输入22,则输出16

/*-----------------------------------------------------------------------
【程序设计】
-------------------------------------------------------------------------
题目:定义一个函数求任意给定整数n的个位数字和十位数字和的完全平方,如果输入数
      字0<n<10,则在数字前加0,然后进行计算并输出计算结果。例如输入22,则输出16
-------------------------------------------------------------------------
注意:请勿改动程序中的其他内容,请勿重新定义变量名。
------------------------------------------------------------------------*/

#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
  
int calculateSquareSum(int n) {  
          int unit_digit;  
    int  ten_digit;

/**********Program**********/
if(n<10)
n=n*10;
unit_digit=n%10;
ten_digit=n/10%10;
return (unit_digit+ten_digit)*(unit_digit+ten_digit);
/**********  End  **********/ 
   
}  
  
int main() {  
    int n;  
    printf("【Enter a number: 】");  
    scanf("%d", &n);  
    printf("【The result is:】 %d\n", calculateSquareSum(n));  
    return 0;  
}

该程序定义了一个用于计算任意给定整数个位数字和十位数字和的完全平方的函数calculateSquareSum。在主函数main中,用户输入一个整数n,然后调用calculateSquareSum函数计算并输出计算结果。

在calculateSquareSum函数中,首先判断输入的数字是否为个位数,如果是个位数则将其转换为十位数。然后通过取余和整除操作分别获得个位数字和十位数字,将它们相加后求平方作为返回值。

最后,根据用户输入的整数,程序会计算其个位数字和十位数字和的完全平方并输出结果。

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要将给定整数去掉任意数字后重新组成最小数字,可以采用以下的思路: 1. 将整数转换为符串2. 枚举删掉的数字,从 1 到符串长度-1。 3. 对于每个数字,利用回溯算法尝试删除任意数字,生成新的数字符串,并将新的数字符串转换为整数。 4. 记录最小的整数值。 以下是具体的代码实现: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> int findMin(int num, int k) { char str[11]; // 存储数字符串 sprintf(str, "%d", num); // 将数字转换为符串 int len = strlen(str); // 符串长度 char tmp[11]; // 存储新的数字符串 int min = num; // 记录最小值 int cnt = 0; // 记录已删除数字的个 int i, j; for (i = 1; i <= k; i++) { // 枚举删除数字的个 memset(tmp, 0, sizeof(tmp)); // 清空新的数字符串 cnt = 0; // 初始化已删除数字的个 for (j = 0; j < len; j++) { // 遍历数字符串 if (cnt < i && (j == 0 || str[j] >= tmp[cnt-1])) { // 当前数字可以删除 cnt++; // 增加已删除数字的个 } else { // 当前数字不能删除 tmp[j-cnt] = str[j]; // 复制当前数字到新的数字符串 } } while (cnt < i) { // 如果已删除数字的个不足 i,删除末尾的数字 tmp[len-cnt-1] = '\0'; // 删除末尾数字 cnt++; // 增加已删除数字的个 } int val = atoi(tmp); // 将新的数字符串转换为整数 if (val < min) { // 更新最小值 min = val; } } return min; } int main() { int num, k; // num:给定整数,k:删除数字的个 printf("请输入一个整数和要删除的数字:"); scanf("%d %d", &num, &k); int min = findMin(num, k); // 最小值 printf("去掉 %d 个数字后重新组合成的最小数字是:%d\n", k, min); return 0; } ``` 这个程序首先读入一个整数和要删除的数字,然后调用`findMin()`函数解去掉数字后的最小值,并输出结果。`findMin()`函数中,首先将整数转换为符串,然后枚举删除数字的个,对于每个数字,用回溯算法尝试删除任意数字,生成新的数字符串,并将新的数字符串转换为整数,记录最小的整数值。 这个程序可以用以下命令编译并运行: ```bash gcc -o minNumber minNumber.c ./minNumber ``` 运行程序后,输入一个整数和要删除的数字,程序会输出去掉数字后重新组合成的最小数字

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值