#13947: 請求幫助


410621208@gms.ndhu.edu.tw (123456)

學校 : 不指定學校
編號 : 74722
來源 : [101.12.16.135]
最後登入時間 :
2021-11-15 00:08:17
d044. 00640 - Self Numbers -- UVa640 | From: [134.208.51.31] | 發表日期 : 2018-05-19 18:14

#include<stdio.h>
int main(){
int i,j,k;
int target;
int temp = 0;
int des = 0;
char number[1000005];
for(i = 1;i <= 1000000;i++)
number[i] = '0';
//printf("Test");
for(i = 1;i < 1000000;i++){
for(target = i;target <= 1000000;temp = 0,des = 0){
des = target;
while(target >= 10){
temp += target % 10;
target /= 10;
//printf("temp:%d target:%d\n",temp,target);
}
//printf("End");
des += target;
if(des < 10)
target += target;
else{
target = des + temp;
}
//printf("%d %d\n",i,target);
if(target <= 1000000)
number[target] = '1';
else
break;
}
//i = 1000000;
//printf("%d\n",i);
}
/*for(i = 0;;i++)
printf("%s",number[i]);*/
//printf("Test");
for(i = 1;i <= 1000000;i++){
if(number[i] == '0')
printf("%d\n",i);
}
return 0;
}

 

我的程式跑不出while,但把次數改小就可以,/跟%調換的話也可以,但現在也跑不出來,懇請各位大神幫忙!!

 
#13951: Re:請求幫助


a0970580085@gmail.com (/)

學校 : 義守大學
編號 : 74647
來源 : [125.229.235.114]
最後登入時間 :
2023-08-30 17:36:04
d044. 00640 - Self Numbers -- UVa640 | From: [111.254.215.242] | 發表日期 : 2018-05-20 01:16

#include
int main(){
int i,j,k;
int target;
int temp = 0;
int des = 0;
char number[1000005];
for(i = 1;i <= 1000000;i++)
number[i] = '0';
//printf("Test");
for(i = 1;i < 1000000;i++){
for(target = i;target <= 1000000;temp = 0,des = 0){
des = target;
while(target >= 10){
temp += target % 10;
target /= 10;
//printf("temp:%d target:%d\n",temp,target);
}
//printf("End");
des += target;
if(des < 10)
target += target;
else{
target = des + temp;
}
//printf("%d %d\n",i,target);
if(target <= 1000000)
number[target] = '1';
else
break;
}
//i = 1000000;
//printf("%d\n",i);
}
/*for(i = 0;;i++)
printf("%s",number[i]);*/
//printf("Test");
for(i = 1;i <= 1000000;i++){
if(number[i] == '0')
printf("%d\n",i);
}
return 0;
}

 

我的程式跑不出while,但把次數改小就可以,/跟%調換的話也可以,但現在也跑不出來,懇請各位大神幫忙!!

你的第12行 for(target = i;target <= 1000000;temp = 0,des = 0)


其實我看不太懂你的程式碼,不過我猜測你的target應該是跟著i跑的,所以你的target大小不應該每次都讓他跑到1000000。(我改動一個地方就AC了)

 
#13960: Re:請求幫助


410621208@gms.ndhu.edu.tw (123456)

學校 : 不指定學校
編號 : 74722
來源 : [101.12.16.135]
最後登入時間 :
2021-11-15 00:08:17
d044. 00640 - Self Numbers -- UVa640 | From: [134.208.51.31] | 發表日期 : 2018-05-20 17:25

#include
int main(){
int i,j,k;
int target;
int temp = 0;
int des = 0;
char number[1000005];
for(i = 1;i <= 1000000;i++)
number[i] = '0';
//printf("Test");
for(i = 1;i < 1000000;i++){
for(target = i;target <= 1000000;temp = 0,des = 0){
des = target;
while(target >= 10){
temp += target % 10;
target /= 10;
//printf("temp:%d target:%d\n",temp,target);
}
//printf("End");
des += target;
if(des < 10)
target += target;
else{
target = des + temp;
}
//printf("%d %d\n",i,target);
if(target <= 1000000)
number[target] = '1';
else
break;
}
//i = 1000000;
//printf("%d\n",i);
}
/*for(i = 0;;i++)
printf("%s",number[i]);*/
//printf("Test");
for(i = 1;i <= 1000000;i++){
if(number[i] == '0')
printf("%d\n",i);
}
return 0;
}

 

我的程式跑不出while,但把次數改小就可以,/跟%調換的話也可以,但現在也跑不出來,懇請各位大神幫忙!!

你的第12行 for(target = i;target <= 1000000;temp = 0,des = 0)


其實我看不太懂你的程式碼,不過我猜測你的target應該是跟著i跑的,所以你的target大小不應該每次都讓他跑到1000000。(我改動一個地方就AC了)



不好意思,小弟想了很久還是不太懂target跑到哪裡要停,如果不把target跑1000000有些數字會漏檢查到吧,請大神幫幫忙。

 
#13961: Re:請求幫助


a0970580085@gmail.com (/)

學校 : 義守大學
編號 : 74647
來源 : [125.229.235.114]
最後登入時間 :
2023-08-30 17:36:04
d044. 00640 - Self Numbers -- UVa640 | From: [111.254.211.203] | 發表日期 : 2018-05-20 21:27

#include
int main(){
int i,j,k;
int target;
int temp = 0;
int des = 0;
char number[1000005];
for(i = 1;i <= 1000000;i++)
number[i] = '0';
//printf("Test");
for(i = 1;i < 1000000;i++){
for(target = i;target <= 1000000;temp = 0,des = 0){
des = target;
while(target >= 10){
temp += target % 10;
target /= 10;
//printf("temp:%d target:%d\n",temp,target);
}
//printf("End");
des += target;
if(des < 10)
target += target;
else{
target = des + temp;
}
//printf("%d %d\n",i,target);
if(target <= 1000000)
number[target] = '1';
else
break;
}
//i = 1000000;
//printf("%d\n",i);
}
/*for(i = 0;;i++)
printf("%s",number[i]);*/
//printf("Test");
for(i = 1;i <= 1000000;i++){
if(number[i] == '0')
printf("%d\n",i);
}
return 0;
}

 

我的程式跑不出while,但把次數改小就可以,/跟%調換的話也可以,但現在也跑不出來,懇請各位大神幫忙!!

你的第12行 for(target = i;target <= 1000000;temp = 0,des = 0)


其實我看不太懂你的程式碼,不過我猜測你的target應該是跟著i跑的,所以你的target大小不應該每次都讓他跑到1000000。(我改動一個地方就AC了)



不好意思,小弟想了很久還是不太懂target跑到哪裡要停,如果不把target跑1000000有些數字會漏檢查到吧,請大神幫幫忙。

我改這樣
for(target = i;target <= i;temp = 0,des = 0)

不要問我為什麼,我真的不知道=.=

可以算是瞎矇的XD

 
#13963: Re:請求幫助


410621208@gms.ndhu.edu.tw (123456)

學校 : 不指定學校
編號 : 74722
來源 : [101.12.16.135]
最後登入時間 :
2021-11-15 00:08:17
d044. 00640 - Self Numbers -- UVa640 | From: [134.208.51.31] | 發表日期 : 2018-05-20 23:30

#include
int main(){
int i,j,k;
int target;
int temp = 0;
int des = 0;
char number[1000005];
for(i = 1;i <= 1000000;i++)
number[i] = '0';
//printf("Test");
for(i = 1;i < 1000000;i++){
for(target = i;target <= 1000000;temp = 0,des = 0){
des = target;
while(target >= 10){
temp += target % 10;
target /= 10;
//printf("temp:%d target:%d\n",temp,target);
}
//printf("End");
des += target;
if(des < 10)
target += target;
else{
target = des + temp;
}
//printf("%d %d\n",i,target);
if(target <= 1000000)
number[target] = '1';
else
break;
}
//i = 1000000;
//printf("%d\n",i);
}
/*for(i = 0;;i++)
printf("%s",number[i]);*/
//printf("Test");
for(i = 1;i <= 1000000;i++){
if(number[i] == '0')
printf("%d\n",i);
}
return 0;
}

 

我的程式跑不出while,但把次數改小就可以,/跟%調換的話也可以,但現在也跑不出來,懇請各位大神幫忙!!

你的第12行 for(target = i;target <= 1000000;temp = 0,des = 0)


其實我看不太懂你的程式碼,不過我猜測你的target應該是跟著i跑的,所以你的target大小不應該每次都讓他跑到1000000。(我改動一個地方就AC了)



不好意思,小弟想了很久還是不太懂target跑到哪裡要停,如果不把target跑1000000有些數字會漏檢查到吧,請大神幫幫忙。

我改這樣
for(target = i;target <= i;temp = 0,des = 0)

不要問我為什麼,我真的不知道=.=

可以算是瞎矇的XD

喔~~ okok 原來是target的部分阿~~ 雖然不知道為什麼原本的不行,但我能理解改動後的原理,真的是非常謝謝大大的幫忙!!!


 
ZeroJudge Forum