对于一个较大的整数 N(1<=N<=2,000,000,000)
比如 980364535,我们常常需要一位一位数这个数字是几位数,但是如果在这 个数字每三位加一个逗号,它会变得更加易于朗读。
因此,这个数字加上逗号成如下的模样:980,364,535请写一个程序帮她完成这件事情
一行一个整数 N
一行一个字符串表示添加完逗号的结果
980364535
980,364,535
1≤n≤2,000,000,000
#include <stdio.h> int main(){ long n; int arr[20] = { 0 }, i = 0; scanf("%ld", &n); while(n){ arr[i] = n % 10; n /= 10; i++; } for(int j = i - 1, count = 0; j >= 0; j--, count++){ printf("%d", arr[j]); if((i-1 - count) % 3 == 0 && count < i - 1) printf(","); } return 0; }
int main() { int n; char str[20];//用来逆序存放最终输出的数字n和字符',' int i = 0;//作为str字符数组的下标 int count = 0;//用来计数 scanf("%d", &n); while (n)//结束条件 { if (count == 3)//count每到3就放一个逗号字符到字符数组里 { str[i] = ','; count = 0;//count重新开始计数 goto qu; } int num= n % 10; sprintf(&str[i], "%d", num);//sprintf是格式转换函数,把数字转换成对应的字符 n /= 10; count++; qu: i++;//每放进去一个字符,下标就++一下 } for (int j = i - 1; j >= 0; j--)//逆序打印出字符数组即可 { printf("%c", str[j]); } return 0; }
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; void (async function () { // Write your code here while ((line = await readline())) { let arr = line.split(""); let n = arr.length; let arr1 = arr.reverse(); let num = parseInt(n / 3); for (let index = 3; index < n + num; index += 3) { arr1.splice(index, 0, ","); index++; } if (n % 3 == 0) { arr1.pop(); } let re = arr1.reverse() let str = re.join(""); console.log(str); } })();
s = input() ls = [] max,min = 0,1000 for i in s: ls.append(i) for i in range(len(ls)): #得到max count = 0 for j in range(len(ls)): if(ls[j] == ls[i]): count+=1 if(count>=max): max = count for i in range(len(ls)): #得到min count = 0 for j in range(len(ls)): if(ls[j] == ls[i]): count+=1 if(count<=min): min = count true_value = max - min flag = 0 if(true_value == 0): print("No Answer") print(true_value) elif(true_value == 1): print("No Answer") print('0') else: for i in range(2, true_value): if (true_value % i == 0): flag = 1 print("No Answer") print(true_value) break if (flag == 0): print("Lucky Word") print(true_value)
#include <iostream> #include<algorithm> using namespace std; int main() { string str; cin>>str; string str2=""; int num=0; for(int i=str.size()-1;i>=0;i--){ if(num==3){ str2+=','; str2+=str[i]; num=0; } else{ str2+=str[i]; } num++; } reverse(str2.begin(),str2.end()); cout<<str2; } // 64 位输出请用 printf("%lld")
#include <stdio.h> int main() { //初始化数据 int num, i = 0, j = 0, sum = 0, arr[4] = { 0 }; scanf("%d", &num); int count2 = 0; while (num) { arr[i++] = num % 1000; num /= 1000; } //遍历 int flag = 1; for (j = 3; j >= 0; j--) { if (arr[j] != 0) { if (flag) { flag = 0; printf("%d", arr[j]); } else printf(",%03d", arr[j]); } } return 0; }
package main import ( "fmt" "strings" ) func reverse(sl []string) { l,r := 0,len(sl)-1 for l<r { sl[l],sl[r] = sl[r],sl[l] l++ r-- } } func main() { var n int fmt.Scan(&n) t := []string{} for n > 0 { var x string if n >= 1000 { x = fmt.Sprintf("%03d", n%1000) } else { x = fmt.Sprintf("%d", n%1000) } n /= 1000 t = append(t, x) } reverse(t) fmt.Println(strings.Join(t, ",")) }
#include <stdio.h> #include <string.h> int main() { char arr1[11] = { 0 }; char arr2[15] = { 0 }; char* p = arr2; gets(arr1); int len = strlen(arr1); if (len <= 3) { strncpy(arr2, arr1, 3); printf("%s\n", arr2); } else if (len > 3 && len <= 6) { int i = 0; int j = 0; for (i = 0; i < 1; i++) { strncpy(arr2 + 15 - 3, arr1 + len - 3, 3); arr2[15 - 4] = ','; j += 3; } while (*p != ',') { p++; } strncpy(p-len+3, arr1, len-3); printf("%s\n", p - len + 3); } else if (len > 6) { int i = 0; int j = 0; for (i = 0; i < 2; i++) { if (i == 0)//153920529 { strncpy(arr2 + 15 - 3-1, arr1 + len - 3, 3); } else if (i > 0) { strncpy(arr2 + 15 - 3 - 1-1 - j, arr1 + len - 3 - j, 3); } arr2[15 - 4 -1- 4 * i] = ','; j += 3; } p = arr2; while (*p != ',') { p++; } strncpy(p - len + 6, arr1, len-6); printf("%s\n", p - len + 6); } return 0; }
in_str = list(input()[::-1]) for i in range(len(in_str)): if i * 4 + 3 < len(in_str): in_str.insert(i * 4 + 3, ",") else: break print("".join(in_str[::-1]))