c 语音代码 蒜头君认为一个正整数的幸运度是把它的每一位取出来,对从左数第 � i 位的数乘上 � i ,再把每一位算出的乘积加起来的结果。比如 9876 9876 的幸运度就是 9 × 1 + 8 × 2 + 7 × 3 + 6 × 4 = 70 9×1+8×2+7×3+6×4=70 。 现在蒜头君想让你帮忙算算正整数 � N 的幸运度。 输入格式 输入一行,包含一个整数 � ( 1 ≤ � < 1 0 100000 ) N(1≤N<10 100000 ) 。 输出格式 输出一行,包含一个整数,表示 � N 的幸运度。 数据范围 对于 60 % 60% 的数据, 1 ≤ � < 1 0 9 1≤N<10 9 对于 80 % 80% 的数据, 1 ≤ � < 1 0 18 1≤N<10 18 对于 100 % 100% 的数据, 1 ≤ � < 1 0 100000 1≤N<10 100000
时间: 2023-12-29 09:05:24 浏览: 42
以下是使用 C 语言编写的代码:
```c
#include <stdio.h>
int main() {
char n[100005];
scanf("%s", n);
long long sum = 0;
for (int i = 0; n[i]; i++) {
sum += (n[i] - '0') * (i + 1);
}
printf("%lld\n", sum);
return 0;
}
```
思路解析:
首先定义一个字符数组 `n` 来存储输入的正整数,然后使用 `scanf` 函数读入该正整数。
接下来定义一个变量 `sum` 来存储幸运度的值,并初始化为 0。使用 `for` 循环遍历整个正整数 `n`,在循环体内将每一位数字乘以对应的位置,然后加到 `sum` 上。
最后使用 `printf` 函数输出 `sum` 的值即为正整数 `n` 的幸运度。
相关问题
C语言输入一个正整数求出它是几位数分别输出每一位数按逆序输出各位数字
这是一个C语言程序,目的是输入一个正整数,然后求出它是几位数,分别输出每一位数,最后按逆序输出各位数字。程序首先通过scanf()函数获取用户输入的数字,然后使用while循环和取模运算符%来逆序输出每一位数字,同时使用计数器i来记录数字的位数。接着,程序使用pow()函数计算出10的i-1次方,然后使用while循环和除法运算符/来正序输出每一位数字。
代码示例:
```c
#include <stdio.h>
#include <math.h>
int main() {
long long num;
printf("请输入数字:");
scanf("%lld", &num);
long long m;
m = num;//保存num数据用于后面正序输出
int i=0;
int temp = 0;
int sum = 0;
if (num == 0) {
printf("位数为:1\n");
printf("逆序为:0");
printf("正序为:0");
return 0;
}
printf("逆序输出为:");
if (num < 0) {
printf("-");
num = -num;
}
while (num!=0) {
temp = num % 10;
printf("%d", temp);
num/=10;
i++;
}
printf("\n位数为:%d", i);//走完num为0
num = m;
int power = (int)pow(10, i - 1);
printf("\n正序输出为:");
if (num < 0) {
printf("-");
num = -num;
}
while (num != 0) {
sum = num /power;
printf("%3d",sum);
num %= power;
power /= 10;
}
return 0;
}
```
从键盘输入一个不多于3位的正整数,求它是几位数字,分别输出每一位数字
以下是C语言的代码实现,可以从键盘输入一个不多于3位的正整数,求它是几位数字,分别输出每一位数字:
```c
#include <stdio.h>
int main() {
int num, digit, count = 0;
printf("请输入一个不多于3位的正整数:");
scanf("%d", &num);
int temp = num;
while (temp != 0) {
digit = temp % 10;
printf("第%d位数字为:%d\n", ++count, digit);
temp /= 10;
}
printf("该数是%d位数字\n", count);
return 0;
}
```
输入一个不多于3位的正整数,程序会先通过`scanf`函数获取输入的数字,然后使用`while`循环,每次取出数字的个位数并输出,同时将计数器`count`加1,直到数字变为0。最后输出数字的位数。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)