HDU-1013九余数(字符串和整数的转换)极简代码

    xiaoxiao2024-07-26  12

    引用:

    C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串,下面列举了各函数的方法及其说明。 ● itoa():将整型值转换为字符串。 ● ltoa():将长整型值转换为字符串。 ● ultoa():将无符号长整型值转换为字符串。 ● gcvt():将浮点型数转换为字符串,取四舍五入。 ● ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。 ● fcvt():指定位数为转换精度,其余同ecvt()。

    #include<stdio.h>

    #include<string.h>

    # include <stdlib.h>

    char a[1000];char b[1000];

    int main(){

       int i; int length; int sum;

        scanf("%s",a);  

    while(strcmp(a,"0")!=0) {         length=strlen(a);

                   while(length>1) {             sum=0;      

    for(i=0;i<length;i++)//字符串转整型    

            sum+=(a[i]-'0');

            itoa(sum,a,10);         length=strlen(a);

           }     printf("%s\n",a);     scanf("%s",a); } return 0;}

    #include<stdio.h>

    #include<string.h>

    int main(){

       int i; int length; int sum; int t;

      char a[1000]; char b[1000];     scanf("%s",a); while(strcmp(a,"0")!=0) {             length=strlen(a); while(length>1) {                 sum=0; for(i=0;i<length;i++)             sum+=(a[i]-'0');      

    for(i=0;sum!=0;i++) {    b[i]=sum%10+'0';                         sum/=10; }         length=i;      

    for(i=0;i<length;i++) {         a[i]=b[length-1-i]; }         a[i]='\0';         length=strlen(a); }         printf("%s\n",a);     scanf("%s",a); }

      return 0;}

    “弃九法”也叫做弃九验算法,利用这种方法可以验算加、减计算的结果是否错误。

    把一个数的各位数字相加,直到和是一个一位数(和是9,要减去9得0),这个数就叫做原来数的弃九数。

    #include<iostream>  #include<string>  using namespace std;  int main()  {     string str;      int sum,k;      while(cin>>str&&str[0]!='0')      {              sum=0;              for(int i=0;i<str.length();i++)              {                  k=str[i]-'0';                  sum+=k;              }              if(sum%9==0)              {                  cout<<"9"<<endl;              }              else                cout<<sum%9<<endl;      }     return 0;  } 

    //极简代码--转

    #include<stdio.h> int main() {     int a,c;     for(;scanf("%1d",&a),a>0;printf("%d\n",--a%9u+1))         while((c=getchar())-48u<10)             a+=c-48;     return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-1291046.html
    最新回复(0)