【ACM打卡】ZOJ 1067 1115

1067  

输入16组三维坐标(二维数组,for循环至16);

输入其他R G B(直到三个值为-1 -1 -1结束,break跳出循环),利用假循环while(1)输出(里面嵌套for循环判断最短距离的点)结果。


1115

输入一个整数,各个位数相加,直至最后为个位数。

这是我第一次在ZOJ中使用 函数 以及 递归 的思想。但是还有很多地方不明白,如(int)(void)()三者区别,有时候就是无法编译;string.h(strlen为长度)与string(length为长度)的区别。以后继续努力。

问题:

int main(void)
{
    int a;
    while(cin>>a&&a!=0){
    cout<<digitroot( a)<<endl;
    }
}

数字可能很大,这样的主函数无法AC,应该用字符串来输入(借鉴了别人的代码,然后AC)。

int main(void){

    string s;
    while(cin>>s&&s[0]!='0'){
        int a = 0;
        for(int i=0; i<s.length(); i++){
            a = a + s[i] -'0';                            //char转换为int
        }
        cout<<digitroot(a)<<endl;             //digitroot函数
    }

}


by the way,今天的题看起来都很简单,最后都是借鉴了别人的经验才通过的。以后不要所有东西都定义为int,有时候数组、字符串是不错的选择。微笑微笑微笑


1067

#include<iostream>
#include<stdio.h>
using namespace std;

int a[16][3];
int main(){
    int i;
    int R,G,B;
    int m,n,k;
    for(i=0;i<16;i++){
        cin>>a[i][0];
        cin>>a[i][1];
        cin>>a[i][2];
    }
    while(1){
        int m=-1,n=-1;  //利用-1判断,0不可以(不知道为什么)

        cin>>R>>G>>B;
        if(R==-1&&G==-1&&B==-1) break;

        for(i=0;i<16;i++){
            m=(R-a[i][0])*(R-a[i][0])+(G-a[i][1])*(G-a[i][1])+(B-a[i][2])*(B-a[i][2]);
            if(n==-1||m<n){
                n=m;
                k=i;
            }
        }
        printf("(%d,%d,%d) maps to (%d,%d,%d)",R,G,B,a[k][0],a[k][1],a[k][2]);
        printf("
");

    }

}


1115

#include<iostream>
#include<string>
using namespace std;
int digitroot( int a)
{
    int dr = 0;
    while( a > 0)
    {
    dr += a%10;                                //dr累计所有位数求和
    a /= 10;
    }
    if( dr > 9)
    return digitroot( dr);                     //递归思想,若不为个位数,继续函数
    return dr;
}

int main(void){
    string s;
    while(cin>>s&&s[0]!='0'){
        int a = 0;
        for(int i=0; i<s.length(); i++){
            a = a + s[i] -'0';                //char转换为int
        }
        cout<<digitroot(a)<<endl;             //digitroot函数
    }
}


原文地址:https://www.cnblogs.com/iriswang/p/11084678.html