BC146. 添加逗号
描述
输入描述
一行一个整数 N输出描述
一行一个字符串表示添加完逗号的结果示例1
输入:
980364535
输出:
980,364,535
C 解法, 执行用时: 2ms, 内存消耗: 292KB, 提交时间: 2022-03-07
#include <stdio.h> int main() { char x[11] = { 0 }; char result[16] = { 0 }; scanf("%s", &x); int len = strlen(x); int i = 0; int j = 0; for (i = 0; x[i] != '\0'; j++) { if ((len - i) % 3 == 0 && i != 0 && result[j - 1] != ',') result[j] = ','; else { result[j] = x[i]; i++; } } printf("%s\n", result); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 296KB, 提交时间: 2022-04-30
#include<string.h> #include<stdio.h> void fun(char p[]) { int n = 0; n = strlen(p);//计算出n的值strlen函数计算字符串的长度,不包括‘\0' for (int i = n - 3; i > 0; i -= 3)//i=6 { int j = n;//j=9; for (j; j >= i; j--) { p[j + 1] = p[j];// if (j == i) { p[j] = ','; n++; } } } } int main() { char a[25] = { 0 };//123 456 789 gets(a); fun(a); printf("%s\n", a); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 300KB, 提交时间: 2022-06-03
#include<stdio.h> #define N 11 int main(void) { char num[N] = { 0 }; gets(num); int len = (int)strlen(num); int flag = (len - 1) % 3; /*分析可知: * 一个数的位数可以表示为三种:3n,3n+1,3n+2 * * 3n:123 456 789(3,6的后面插入逗号) * 3, 6的下标分别为2,5,模3的结果等于flag=(9-1)%3; * *3n+1,3n+2 同理可证 */ for (int i = 0; i < len; i++) { printf("%c",num[i]); //假如位数恰好为3n,最后不加逗号 if (i % 3 == flag && i < len - 1) { printf(","); } } printf("\n"); return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 300KB, 提交时间: 2022-05-01
#include <stdio.h> #include <string.h> int main() { char arr1[11]={0}; char arr2[20]={0}; int i=0,j=0,k=0; gets(arr1); int ret=strlen(arr1); for(i=ret;i>0;i--){ k+=1; if(k!=1&&k%3==1) { arr2[j]=','; arr2[j=j+1]=arr1[i-1]; } else arr2[j]=arr1[i-1]; j++; } for(i=j-1;i>=0;i--){ printf("%c",arr2[i]); } return 0; }
C 解法, 执行用时: 2ms, 内存消耗: 300KB, 提交时间: 2022-03-12
#include <stdio.h> #include <string.h> int main() { char arr[2000] = { 0 }; gets(arr); int len = strlen(arr); int i = 0; for (i = 1; i <= len; i++) { printf("%c", arr[i - 1]); if (len == 1 || len == 2) continue; if ((len - 1) % 3 == 0) { if ((i == 1) || (((i - 1) % 3 == 0) && i != len)) { printf(","); } continue; } if ((len - 2) % 3 == 0) { if ((i == 2) || (((i - 2) % 3 == 0) && i != len)) { printf(","); } continue; } if ((i % 3 == 0) && i != len) printf(","); } return 0; }